<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

    鏈表的運算(01)

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

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



    1.設(shè)計一個程序?qū)⑤斎氲臄?shù)據(jù)建立成鏈表、輸出鏈表數(shù)據(jù)并在程序結(jié)束后釋放。
    解:
    ??? 1)鏈表的建立:先聲明一個首節(jié)點Head,并將Head->Next設(shè)為NULL。每輸入一個數(shù)據(jù)就聲明一個新節(jié)點New,把New->Next設(shè)為NULL,并且鏈接到之前列表的尾端。
    ??? 2)鏈表數(shù)據(jù)的輸出:先將Pointer節(jié)點的指針指向第一個節(jié)點,將Pointer節(jié)點(即第一個節(jié)點)的數(shù)據(jù)輸出。然后再將Pointer節(jié)點的指針指向Pointer指針的的指針(即下一節(jié)點),將pointer節(jié)點(即第一節(jié)點)的數(shù)據(jù)輸出。重復(fù)執(zhí)行此步聚直到Pointer指針指向NULL為止。
    ??? 3)鏈表的釋放:先將Pointer節(jié)點的指針指向第一個節(jié)點,然后再將首節(jié)點設(shè)為首節(jié)點的指針(即下一節(jié)點)。將Pointer節(jié)點(即第一節(jié)點)釋放。重復(fù)執(zhí)行此步聚直到首節(jié)點的指針指向NULL為止。
    程序代碼如下:
    #include<stdlib.h>
    #include<stdio.h>
    #define Max 10
    struct List???????????? /*節(jié)點結(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é)點聲明*/
    ??? while(Head!=NULL)????? /*當節(jié)點為NULL,結(jié)束循環(huán)*/
    ??? {
    ??????? Pointer=Head;
    ??????? Head=Head->Next;?? /*指向下一個節(jié)點*/
    ??????? free(Pointer);
    ????}
    }
    /*輸出鏈表*/
    void Print_List(Link Head)
    {
    ??? Link Pointer;????????? /*節(jié)點聲明*/
    ??? Pointer=Head;????????? /*Pointer指針設(shè)為首節(jié)點*/
    ??? while(Pointer!=NULL)?? /*當節(jié)點為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é)點*/
    ??? }
    }
    /*建立鏈表*/
    Link Create_List(Link Head)
    {
    ??? int DataNum;???????? /*數(shù)據(jù)編號*/
    ??? char DataName[Max];??????? /*數(shù)據(jù)名稱*/
    ??? Link New;??????????? /*節(jié)點聲明*/
    ??? Link Pointer;??????? /*節(jié)點聲明*/
    ??? 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é)點數(shù)據(jù)編號*/
    ??????? for(i=0;i<=Max;i++)
    ??????????? Head->Name[i]=DataName[i];
    ??????? Head->Next=NULL;
    ??????? Pointer=Head;????????? /*Pointer指針設(shè)為首節(jié)點*/
    ??????? 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é)點串連在原列表尾端*/
    ??????????? Pointer=New;???????? /*列表尾端節(jié)點為新節(jié)點*/
    ??????? }
    ??? }
    ??? return Head;
    }
    /*主程序*/
    void main()
    {
    ??? Link Head;?????? /*節(jié)點聲明*/
    ??? Head=Create_List(Head);???? /*調(diào)用建立鏈表函數(shù)*/
    ??? if(Head!=NULL)
    ??? {
    ??????? Print_List(Head);????? /*調(diào)用輸出鏈表數(shù)據(jù)函數(shù)*/
    ??????? Free_List(Head);?????? /*調(diào)用釋放鏈表函數(shù)*/
    ??? }
    }

    運行結(jié)果如下:

    posted on 2006-07-17 22:53 小力力力 閱讀(2652) 評論(0)  編輯  收藏 所屬分類: C/C++
    主站蜘蛛池模板: www.亚洲成在线| 99视频在线免费观看| 亚洲AV无码精品国产成人| 丁香花在线观看免费观看图片| 中文免费观看视频网站| 亚洲人成影院在线观看| 91嫩草亚洲精品| 免费无码作爱视频| 亚洲AⅤ无码一区二区三区在线| 一区二区三区亚洲| 一级做α爱过程免费视频| 在线观看免费毛片| 中文字幕亚洲免费无线观看日本 | 在线观看免费宅男视频| 亚洲永久网址在线观看| 96免费精品视频在线观看| 国产精品亚洲mnbav网站| 中国一级特黄的片子免费| 精品国产亚洲一区二区三区 | 国产美女a做受大片免费| 亚洲沟沟美女亚洲沟沟| 搡女人免费免费视频观看| 亚洲国产精品热久久| 国产一级婬片A视频免费观看| 国产成A人亚洲精V品无码 | 怡红院亚洲红怡院在线观看| 很黄很黄的网站免费的| 亚洲AV人人澡人人爽人人夜夜| 一级a性色生活片久久无少妇一级婬片免费放 | 精品亚洲成在人线AV无码| 97久久免费视频| 亚洲精品无码少妇30P| 最近中文字幕mv手机免费高清| 亚洲理论精品午夜电影| 全免费一级午夜毛片| 亚洲人成色在线观看| 国产成人精品日本亚洲专区61 | 久久99精品视免费看| 亚洲高清在线视频| 免费看的一级毛片| a级片免费在线播放|