• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 鏈表 C 組鏈

    發表于:2007-05-25來源:作者:點擊數: 標簽:組鏈stdlib.h#defin鏈表#include
    #include stdlib.h #define MAX 10 struct List { int number; char name[MAX]; struct List *Next; }; typedef struct List Node; typedef Node *Link; Link createList(Link Head) { int newNumber; char newName[MAX]; Link Pointer; Link New; int i; pr

    #include <stdlib.h>
    #define MAX 10

    struct List {
        int             number;
        char            name[MAX];
        struct List     *Next;
    };

    typedef struct List Node;

    typedef Node *Link;

    Link createList(Link Head) {
        int newNumber;
        char newName[MAX];
       
        Link Pointer;
        Link New;   
       
        int i;
       
     printf("首節點內存分配\n");
        Head = (Link)malloc(sizeof(Node));

        if(Head == NULL) {
            printf("首節點內存分配錯誤\n");
        }
        else {
            newNumber = 1;
           
            printf("輸入首節點數據項2 ( <=10 char ) : ");
            scanf("%s",newName);
           
      printf("保存數據項到首節點\n");
            Head->number = newNumber;
            for(i=0;i<MAX;i++) {
                Head->name[i] = newName[i];
            }
            Head->Next = NULL;
           
      printf("建立指向首節點的節點\n");
            Pointer = Head;
           
            while(1) {
                newNumber++;
               
       printf("新節點分配內存\n");
                New = (Link)malloc(sizeof(Node));
              
                if(New == NULL) {
                    printf("新節點內存分配失敗\n");
                }
                else {
                    printf("輸入新節點數據項2 '0' 退出 : ");    
                    scanf("%s",newName);
                   
                    if(newName[0] == '0') {
         printf("節點輸入完畢\n");
                        break;
                    }
                   
        printf("保存數據項到節點\n");
                    New->number = newNumber;
                    for(i=0;i<MAX;i++) {
                        New->name[i] = newName[i];
                    }
                   
                    New->Next = NULL;
                   
        printf("新節點作為當前節點的下一節點\n");
                    Pointer->Next = New;
                   
        printf("當前節點指向新節點,完成組鏈\n");
                    Pointer = New;
                }
            }        
      
            return Head;
        }
    }

    void printList(Link Head) {
        Link Pointer;
        Pointer = Head;
       
        printf("打印鏈表\n數據項1\t數據項2\n");
        while(Pointer != NULL) {
            printf("%d\t",Pointer->number);
            printf("%s\n",Pointer->name);
           
            Pointer = Pointer->Next;
        }
    }

    void freeList(Link Head) {
        Link Pointer;
       
        while(Head != NULL) {
            Pointer = Head;
            Head = Head->Next;
            printf("釋放節點 %d\n",Pointer->number);
      free(Pointer);
        }
    }

    int main() {
        Link Head;
       
        Head = createList(Head);

        if(Head != NULL) {
            printList(Head);
            freeList(Head);
        }
       
        return 0;
    }   

    /*
    D:\>CAPAFList
    首節點內存分配
    輸入首節點數據項2 ( <=10 char ) : aaa
    保存數據項到首節點
    建立指向首節點的節點
    新節點分配內存
    輸入新節點數據項2 '0' 退出 : bbb
    保存數據項到節點
    新節點作為當前節點的下一節點
    當前節點指向新節點,完成組鏈
    新節點分配內存
    輸入新節點數據項2 '0' 退出 : clearcase/" target="_blank" >ccc
    保存數據項到節點
    新節點作為當前節點的下一節點
    當前節點指向新節點,完成組鏈
    新節點分配內存
    輸入新節點數據項2 '0' 退出 : ddd
    保存數據項到節點
    新節點作為當前節點的下一節點
    當前節點指向新節點,完成組鏈
    新節點分配內存
    輸入新節點數據項2 '0' 退出 : 0
    節點輸入完畢
    打印鏈表
    數據項1 數據項2
    1       aaa
    2       bbb
    3       ccc
    4       ddd
    釋放節點 1
    釋放節點 2
    釋放節點 3
    釋放節點 4
    */

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>