<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++
    主站蜘蛛池模板: 国产日韩一区二区三免费高清| 国产精品高清视亚洲一区二区| 亚洲精品视频免费观看| 蜜臀91精品国产免费观看| 亚洲成A人片在线播放器| 久久不见久久见中文字幕免费| 亚洲一区二区久久| 在线免费观看一区二区三区| 亚洲熟女精品中文字幕| 精品免费久久久久久成人影院| 色五月五月丁香亚洲综合网| 国产一区二区三区在线免费观看| 美女被免费视频网站| 亚洲A丁香五香天堂网| 狠狠躁狠狠爱免费视频无码| 久久精品7亚洲午夜a| a拍拍男女免费看全片| 一本色道久久88亚洲精品综合 | 亚洲一线产区二线产区区| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 久久电影网午夜鲁丝片免费| 苍井空亚洲精品AA片在线播放| 亚洲日本一区二区三区在线不卡| baoyu116.永久免费视频| 亚洲天堂福利视频| 吃奶摸下高潮60分钟免费视频| 青青操免费在线视频| 亚洲毛片免费观看| 国产无遮挡吃胸膜奶免费看 | 免费在线看污视频| 亚洲一级毛片视频| 免费人妻av无码专区| 久久精品免费视频观看| 亚洲Av永久无码精品一区二区| 亚洲熟妇无码AV在线播放| 青青在线久青草免费观看| 一区二区三区在线观看免费| 亚洲欧洲在线播放| 中文字幕在线亚洲精品| A级毛片内射免费视频| 两个人看的www免费高清|