<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-144  評論-80  文章-1  trackbacks-0

    鏈表的運(yùn)算(01)

    發(fā)表日期:2003年4月8日????作者:C語言之家搜集整理??已經(jīng)有3901位讀者讀過此文

    1.設(shè)計(jì)一個程序?qū)⑤斎氲臄?shù)據(jù)建立成鏈表、輸出鏈表數(shù)據(jù)并在程序結(jié)束后釋放。
    2.設(shè)計(jì)一個查找鏈表中的數(shù)據(jù)的程序



    1.設(shè)計(jì)一個程序?qū)⑤斎氲臄?shù)據(jù)建立成鏈表、輸出鏈表數(shù)據(jù)并在程序結(jié)束后釋放。
    解:
    ??? 1)鏈表的建立:先聲明一個首節(jié)點(diǎn)Head,并將Head->Next設(shè)為NULL。每輸入一個數(shù)據(jù)就聲明一個新節(jié)點(diǎn)New,把New->Next設(shè)為NULL,并且鏈接到之前列表的尾端。
    ??? 2)鏈表數(shù)據(jù)的輸出:先將Pointer節(jié)點(diǎn)的指針指向第一個節(jié)點(diǎn),將Pointer節(jié)點(diǎn)(即第一個節(jié)點(diǎn))的數(shù)據(jù)輸出。然后再將Pointer節(jié)點(diǎn)的指針指向Pointer指針的的指針(即下一節(jié)點(diǎn)),將pointer節(jié)點(diǎn)(即第一節(jié)點(diǎn))的數(shù)據(jù)輸出。重復(fù)執(zhí)行此步聚直到Pointer指針指向NULL為止。
    ??? 3)鏈表的釋放:先將Pointer節(jié)點(diǎn)的指針指向第一個節(jié)點(diǎn),然后再將首節(jié)點(diǎn)設(shè)為首節(jié)點(diǎn)的指針(即下一節(jié)點(diǎn))。將Pointer節(jié)點(diǎn)(即第一節(jié)點(diǎn))釋放。重復(fù)執(zhí)行此步聚直到首節(jié)點(diǎn)的指針指向NULL為止。
    程序代碼如下:
    #include<stdlib.h>
    #include<stdio.h>
    #define Max 10
    struct List???????????? /*節(jié)點(diǎn)結(jié)構(gòu)聲明*/
    {
    ??? int Number;
    ??? char Name[Max];
    ??? struct List *Next;
    };
    typedef struct List Node;
    typedef Node *Link;
    /*釋放鏈表*/
    void Free_List(Link Head)
    {
    ??? Link Pointer;????? /*節(jié)點(diǎn)聲明*/
    ??? while(Head!=NULL)????? /*當(dāng)節(jié)點(diǎn)為NULL,結(jié)束循環(huán)*/
    ??? {
    ??????? Pointer=Head;
    ??????? Head=Head->Next;?? /*指向下一個節(jié)點(diǎn)*/
    ??????? free(Pointer);
    ????}
    }
    /*輸出鏈表*/
    void Print_List(Link Head)
    {
    ??? Link Pointer;????????? /*節(jié)點(diǎn)聲明*/
    ??? Pointer=Head;????????? /*Pointer指針設(shè)為首節(jié)點(diǎn)*/
    ??? while(Pointer!=NULL)?? /*當(dāng)節(jié)點(diǎn)為NULL結(jié)束循環(huán)*/
    ??? {
    ??????? printf("##Input Data##\n");
    ??????? printf("Data Number: %d\n",Pointer->Number);
    ??????? printf("Data Name: %s\n",Pointer->Name);
    ??????? Pointer=Pointer->Next;???? /*指向下一個節(jié)點(diǎn)*/
    ??? }
    }
    /*建立鏈表*/
    Link Create_List(Link Head)
    {
    ??? int DataNum;???????? /*數(shù)據(jù)編號*/
    ??? char DataName[Max];??????? /*數(shù)據(jù)名稱*/
    ??? Link New;??????????? /*節(jié)點(diǎn)聲明*/
    ??? Link Pointer;??????? /*節(jié)點(diǎn)聲明*/
    ??? int i;
    ??? Head=(Link)malloc(sizeof(Node));???? /*分配內(nèi)存*/
    ??? if(Head==NULL)
    ??????? printf("Memory allocate Failure!\n");??? /*內(nèi)存分配夫敗*/
    ??? else
    ??? {
    ??????? DataNum=1;????? /*初始數(shù)據(jù)編號*/
    ??????? printf("Please input the data name:");
    ??????? scanf("%s",DataName);
    ??????? Head->Number=DataNum;???? /*定義首節(jié)點(diǎn)數(shù)據(jù)編號*/
    ??????? for(i=0;i<=Max;i++)
    ??????????? Head->Name[i]=DataName[i];
    ??????? Head->Next=NULL;
    ??????? Pointer=Head;????????? /*Pointer指針設(shè)為首節(jié)點(diǎn)*/
    ??????? while(1)
    ??????? {
    ??????????? DataNum++;???????? /*數(shù)據(jù)編號遞增*/
    ??????????? New=(Link)malloc(sizeof(Node));???? /*分配內(nèi)存*/
    ??????????? printf("Please input the data Name:");
    ??????????? scanf("%s",DataName);
    ??????????? if(DataName[0]=='0')??? /*輸入0則結(jié)束*/
    ??????????????? break;
    ??????????? New->Number=DataNum;
    ??????????? for(i=0;i<Max;i++)
    ??????????? {
    ??????????????? New->Name[i]=DataName[i];
    ??????????? }
    ??????????? New->Next=NULL;
    ??????????? Pointer->Next=New;???? /*將新節(jié)點(diǎn)串連在原列表尾端*/
    ??????????? Pointer=New;???????? /*列表尾端節(jié)點(diǎn)為新節(jié)點(diǎn)*/
    ??????? }
    ??? }
    ??? return Head;
    }
    /*主程序*/
    void main()
    {
    ??? Link Head;?????? /*節(jié)點(diǎn)聲明*/
    ??? Head=Create_List(Head);???? /*調(diào)用建立鏈表函數(shù)*/
    ??? if(Head!=NULL)
    ??? {
    ??????? Print_List(Head);????? /*調(diào)用輸出鏈表數(shù)據(jù)函數(shù)*/
    ??????? Free_List(Head);?????? /*調(diào)用釋放鏈表函數(shù)*/
    ??? }
    }

    運(yùn)行結(jié)果如下:

    posted on 2006-07-17 22:53 小力力力 閱讀(2654) 評論(0)  編輯  收藏 所屬分類: C/C++
    主站蜘蛛池模板: 国产午夜精品久久久久免费视| 亚洲欧洲精品成人久久曰| 成人免费乱码大片A毛片| 亚洲精品偷拍视频免费观看 | 亚洲中文字幕无码一区二区三区| 亚洲av乱码中文一区二区三区| 成熟女人特级毛片www免费| 色老板亚洲视频免在线观| 成人在线免费看片| 亚洲精品人成网在线播放影院| 无码人妻精品一二三区免费| 亚洲一区二区三区写真| 在线A级毛片无码免费真人| 亚洲av最新在线观看网址| 国产v片免费播放| EEUSS影院WWW在线观看免费| 亚洲码国产精品高潮在线| 小草在线看片免费人成视久网| 亚洲精品视频免费在线观看| 国产在线观看免费观看不卡| 亚洲色大成网站www永久男同| 国产美女精品视频免费观看| 高h视频在线免费观看| 狠狠综合久久综合88亚洲| 未满十八18禁止免费无码网站| 67pao强力打造67194在线午夜亚洲 | 国产精品亚洲视频| 少妇人妻偷人精品免费视频| 国产精品亚洲精品青青青| 又粗又硬免费毛片| 免费国产成人午夜在线观看| 亚洲国产美女福利直播秀一区二区 | 亚欧洲精品在线视频免费观看| 久久亚洲综合色一区二区三区| 久久九九兔免费精品6| 国产精品亚洲一区二区三区在线观看| 亚洲欭美日韩颜射在线二| 2021久久精品免费观看| 国产成人高清亚洲一区久久| 国产亚洲成av片在线观看| 999国内精品永久免费视频|