1. 程式人生 > >單鏈表-用尾插法建立單鏈表

單鏈表-用尾插法建立單鏈表

#include <iostream>
#include <stdlib.h> 
using namespace std;


typedef int ElemType;          //自定義資料型別


typedef struct LNode{          //定義單鏈表結點型別
    ElemType data;         //存放元素值
    struct LNode *next;    //指向後繼節點
}LinkList;


void CreateListR(LinkList * &L,ElemType a[],int n){    //建立單鏈表
    LinkList *s , *r;
    int i;
    L=(LinkList *)malloc(sizeof(LinkList));        //建立頭節點
    r=L;                                           //r始終指向尾節點,開始時指向頭節點
    for(i=0;i<n;i++){ 
        s=(LinkList *)malloc(sizeof(LinkList)); 
        cin>>a[i];
        s->data = a[i];                        //建立資料型別 *s
        r->next = s;                           //將*s插入*r之後
        r=s;                                   
    } 
    r->next = NULL;                                //尾節點next域置為NULL
}


void DispList(LinkList *L){                            //輸出單鏈表
    LinkList *p = L->next;                         //p指向開始節點
    while(p!=NULL){                                //p!=NULL,輸出*p節點的data域
        cout<<p->data<<" ";
        p=p->next;                             //p移向下一個節點
    }
    cout<<endl;
}


int main(){
    int n,a[10],i;
    LinkList *L;                                   
    cin>>n;;
    CreateListR(L,a,n);
    DispList(L);
    return 0;
}