#include <stdio.h> #include <stdlib.h> #define ElemType int #define Status int #define OK 0 #define ERROR -1 typedef struct Node { ElemType data; struct Node * next; }Node; typedef struct Node * LinkList; /*定義LinkList*/ // Status GetElem(LinkList L, int i, ElemType *e) // { // int j=1; // LinkList p; /*聲明一指針p*/ // p = L->next; // while (p && j<i) // { // p = p->next; // ++j; // }; // if (i <= j || !p) // return ERROR; // *e = p->data; // return OK; // } // /*初始條件: 順序線性表已經存在, 1<=i<=ListLength(L).*/ // /*操作結果: 這里指在鏈表第i個元素之前插入元素e, L的長度加1*/ // /*元素前后定義:箭頭指向的方向為前*/ // Status ListInsert(LinkList L,int i, ElemType e) // { // LinkList p,s; // p = *L; // int j=1; // while(p && j<i) // { // p = p->next; // ++j; // } // if(!p || j >= i) // return ERROR; /*第i個節點不存在*/ // s = (LinkList)malloc(sizeof(Node)); // s->data = e; // s->next = p->next; // p->next = s; // return OK; // } // /*初始條件: 順序線性表已經存在, 1<=i<=ListLength(L).*/ // /*操作結果: 這里指刪除鏈表的第i個元素, 並使用e返回該元素值,L的長度減1*/ // Status ListDelete(LinkList L, int i, ElemType *e) // { // LinkList p, q; // p = *L; // int j=1; // while(p && j<i) // { // p = p->next; // ++j; // } // if(!p || j >= i) // return ERROR; /*第i個節點不存在*/ // q = p->next; // e = q->data; // p->next = q->next; // free(q); /*讓系統回收次節點,釋放內存*/ // return OK; // } // void CreateListHead(LinkList *L, int n) // { // LinkList *p; // int i; // srand(time(0)); /*初始化隨機數種子*/ // *L = (LinkList)malloc(sizeof(Node)); // L->next = NULL; /*先建立一個帶頭節點的單鏈表*/ // for(i=0; i<n; i++) // { // p = (LinkList)malloc(sizeof(Node)); /*生成新節點*/ // p->data = rand()%100+1; // p->next = (*L)->next; // (*L)->next = p; // } // } void CreateListTail(LinkList * L, int n) { LinkList *p, r; int i; srand(time(0)); *L = (LinkList)malloc(sizeof(Node)); printf("%d ", sizeof(Node)); L->next = NULL; r = *L; /*將鏈表尾指針賦給r*/ // for(i=0; i<n; i++) // { // p = (LinkList )malloc(sizeof(Node)); /*生成新節點*/ // p->data = rand()%100+1; // r->next = p; // r = p; /*將當前的新節點定義為表尾的終端節點*/ // } // r->next=NULL; } // Status ClearList(LinkList *L) // { // LinkList p,q; // p = (*L)->next; // while(p) // { // q = p->next; // free(q); // p = q; // } // (*L)->next = NULL; // return OK; // } int main() { LinkList mylist; CreateListTail(&mylist, 16); return 0; }