精品日本亚洲一区二区三区,99久久精品免费观看国产,99久久免费精品,亚洲精品国产一区二区成人,日本亚洲精品一区二区三区四区,国产亚洲精品成人久久网站,久久亚洲男人第一AV网站,精品国产高清一区二区广区,久久精品五月天很黄很艳女TV

考研論壇

 
查看: 4728|回復: 11
打印 上一主題 下一主題

一道程序題求解

[復制鏈接]

4

主題

71

帖子

422

積分

一般戰友

Rank: 2

精華
0
威望
0
K幣
422 元
注冊時間
2014-4-13
跳轉到指定樓層
1
發表于 2016-10-21 09:13 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這里printf是c語言的函數吧?能直接傳整型當參數?能的話輸出什么。。我下vc++是跑不了

來自Android客戶端

    回復

    使用道具 舉報

    2

    主題

    93

    帖子

    269

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    269 元
    注冊時間
    2016-4-27
    2
    發表于 2016-10-21 22:13 | 只看該作者
    本帖最后由 UncleLoveLoli 于 2016-10-21 22:14 編輯


    能看到嗎.
    回復

    使用道具 舉報

    4

    主題

    71

    帖子

    422

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    422 元
    注冊時間
    2014-4-13
    3
     樓主| 發表于 2016-10-22 09:18 來自手機 | 只看該作者
    UncleLoveLoli 發表于 2016-10-21 22:13
    能看到嗎.

    嗯嗯,謝謝,不知道怎么現在腦子越來越不靈活了(?_?)

    來自Android客戶端

    回復

    使用道具 舉報

    10

    主題

    1029

    帖子

    4798

    積分

    高級戰友

    Rank: 4

    精華
    1
    威望
    130
    K幣
    4668 元
    注冊時間
    2015-3-7
    4
    發表于 2016-10-24 11:23 | 只看該作者
    你是把偽碼當C語言代碼了吧,它的printf只是表示將他們輸出而已。別拘泥與格式。
    回復

    使用道具 舉報

    4

    主題

    71

    帖子

    422

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    422 元
    注冊時間
    2014-4-13
    5
     樓主| 發表于 2016-10-24 19:27 | 只看該作者
    我要研了 發表于 2016-10-24 11:23
    你是把偽碼當C語言代碼了吧,它的printf只是表示將他們輸出而已。別拘泥與格式。 ...

    嗯嗯,主要這代碼也太偽了~之前見的printf都是寫具體的=。=
    回復

    使用道具 舉報

    4

    主題

    71

    帖子

    422

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    422 元
    注冊時間
    2014-4-13
    6
     樓主| 發表于 2016-10-30 17:30 來自手機 | 只看該作者
    UncleLoveLoli 發表于 2016-10-21 22:13
    能看到嗎.

    能再看看這題嗎

    來自Android客戶端

    回復

    使用道具 舉報

    4

    主題

    71

    帖子

    422

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    422 元
    注冊時間
    2014-4-13
    7
     樓主| 發表于 2016-10-30 17:31 來自手機 | 只看該作者
    我要研了 發表于 2016-10-24 11:23
    你是把偽碼當C語言代碼了吧,它的printf只是表示將他們輸出而已。別拘泥與格式。 ...

    能再幫忙看下這題嗎

    來自Android客戶端

    回復

    使用道具 舉報

    2

    主題

    93

    帖子

    269

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    269 元
    注冊時間
    2016-4-27
    8
    發表于 2016-11-7 11:31 | 只看該作者
    感冒了,才看到.



    代碼如下:
    #include <stdio.h>
    #include <stdlib.h>

    typedef int ElemType;

    typedef struct LNode
    {
            ElemType data;
            struct LNode *next;

    }LNode;

    LNode* LNodeCreate(int len)//創建長度為n的循環鏈表,帶頭結點,頭指針.
    {

            LNode* headp = NULL;//創建頭指針
            headp = (LNode *)malloc(sizeof(LNode));//創建頭結點.
            headp->data = 0;
            printf("頭結點data = 0\n");
            int data;

            LNode *p = NULL;
            LNode *q = NULL;

            p = headp;
            q = headp;

            for (int i = 1; i < len; i++)//長度是n,從(0,n-1);
            {
                    printf("請輸入第%d鏈表的值: ", i);
                    scanf("%d", &data);

                    q = (LNode *)malloc(sizeof(LNode));
                    q->data = data;
                    q->next = NULL;

                    p->next = q;
                    p = q;

           
            }
            q->next = headp;
            q = headp;
            p = headp;
            return headp;
    }


    // 遍歷循環鏈表.

    void print(LNode* p)
    {
           
            LNode* p1 = p;
            while (p1->next != p)
            {
                    printf("%d ", p1->data);
                    p1 = p1->next;
            }
            printf("%d ", p1->data);
            printf("\n");

    }



    void Split(LNode *s, LNode *q)
    {

            LNode *p = NULL;
            p = s;

            while (p->next != q)
            {
                    printf("%d ", p->data);
                    p = p->next;

            }
            printf("%d ", p->data);
            printf("\n");
            p->next = s;
    }


    void AtoBB(LNode *pa, LNode *pb)
    {
            //pa和pb分別指向單循環鏈表(結點數>1)中的兩個結點.

            Split(pa, pb);

            Split(pb, pa);
    }


    int main()
    {
            printf("請輸入循環鏈表的長度:");
            int length = 0;
            scanf("%d", &length);
            LNode* head = LNodeCreate(length);
           
             print(head);//遍歷循環鏈表

            int pa_num;
            int pb_num;

            LNode *pa = NULL;
            LNode *pb = NULL;
            printf("pa 指向單循環鏈表的第幾個結點(1≤num≤%d): ", length);
            scanf("%d", &pa_num);
            LNode* p1 = NULL;
            p1 = head;
            for (int i = 0; i < pa_num-1 ; i++)
            {
                    p1 = p1->next;
            }
            pa = p1;
           
            printf("pb指向單循環鏈表的第幾個結點(1≤num≤%d): ", length);
            scanf("%d", &pb_num);
            LNode* p2 = head;
            for (int i = 0; i < pb_num-1 ; i++)
            {
                    p2 = p2->next;
            }
            pb = p2;
           
            AtoBB(pa, pb);
            free(head);       
            return 0;

    }
    回復

    使用道具 舉報

    2

    主題

    93

    帖子

    269

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    269 元
    注冊時間
    2016-4-27
    9
    發表于 2016-11-7 11:32 | 只看該作者

    回復

    使用道具 舉報

    4

    主題

    71

    帖子

    422

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    0
    K幣
    422 元
    注冊時間
    2014-4-13
    10
     樓主| 發表于 2016-11-7 22:16 | 只看該作者

    謝謝大神,祝大神感冒快點好,今年一定考上哈~果然這題是少一個p=s, 意思就是我可以簡述為split(a,b)函數主要把a結點到b結點前一個結點的所有結點都抽出來,AtoBB 就是調用兩次這個算法,第一次已經抽出a,b之間的鏈,第二次再把剩余的鏈抽出?
    回復

    使用道具 舉報

    您需要登錄后才可以回帖 登錄 | 注冊 人人連接登陸

    本版積分規則   

    關閉

    您還剩5次免費下載資料的機會哦~

    掃描二維碼下載資料

    使用手機端考研幫,進入掃一掃
    在“我”中打開掃一掃,
    掃描二維碼下載資料

    關于我們|商務合作|小黑屋|手機版|聯系我們|服務條款|隱私保護|幫學堂| 網站地圖|院校地圖|漏洞提交|考研幫

    GMT+8, 2026-4-30 06:52 , Processed in 0.082113 second(s), Total 10, Slave 10(Usage:7M, Links:[2]1,1_1) queries , Redis On.

    Powered by Discuz!

    © 2001-2017 考研 Inc.

    快速回復 返回頂部 返回列表
    × 關閉