2.3 建立線性表(尾插操作)
阿新 • • 發佈:2022-03-15
#include <iostream> #include <stdlib.h> typedef struct LNode { int data; LNode *next; }*LinkList; int main() { int a[6] = { 23,43,35,21,54,65 }; //初始化單鏈表 LinkList L; /* L = (LinkList)malloc(sizeof(LNode)); if (L!=NULL)L->next = NULL; */ bool InitLinkList(LinkList & L); InitLinkList(L); //使用尾插法建立單鏈表 /* 1.申請一個空間 2.p指向該空間 3.給該空間的data賦值 4.p指向新申請的空間 5.s->next=p */ /* LNode *p,*s; s = L; for (int i = 0; i < 6; i++) { p = (LNode *)malloc(sizeof(LNode)); if (p != NULL) { p->data = a[i]; p->next = NULL; s->next = p; s = p; } } */ LinkList CreateLinkList(LinkList L, int data[], int length); CreateLinkList(L, a, 6); //輸出單鏈表 void PrintLinkList(LinkList L); PrintLinkList(L); return 0; } //初始化連結串列 bool InitLinkList(LinkList &L) { L = (LinkList)malloc(sizeof(LNode)); if (L == NULL) return false; L->next = NULL; return true; } //尾插操作實現 LinkList CreateLinkList(LinkList L,int data[],int length) { LNode* p, * s; s = L; for (int i = 0; i < length; i++) { p = (LNode*)malloc(sizeof(LNode)); if (p != NULL) { p->data = data[i]; p->next = NULL; s->next = p; s = p; } } return L; } //輸出連結串列函式 void PrintLinkList(LinkList L) { LNode* p; p = L->next; while (p != NULL) { printf("%d\t", p->data); p = p->next; } }