单链表:
节点:结构体
typedef struct Lnode { int data; struct Lnode *next; }LinkList; #这里使用typedef 可以用 更简洁的名字 代替 struct Lnode
建立空链表:只有一个头结点,且指向空(NULL):
void InitList(LinkList*&L) { L = (LinkList *)malloc(sizeof(LinkList)); L->next = NULL; }
建立单链表:
1 #头插法建立单链表 2 void CreateListH(LinkList *&L, int a[], int n) 3 { 4 //LinkList *s; 5 int i; 6 L = (LinkList *)malloc(sizeof(LinkList)); / 7 L->next = NULL; 8 for (i = 0; i < n; i++) 9 {10 s = (LinkList *)malloc(sizeof(LinkList)); 11 s->data = a[i]; 12 s->next = L->next; 13 L->next = s; 14 } 15 }
#尾插法建立单链表void CreateListR(LinkList *&L, int a[], int n) { int i; LinkList *s, *r; L = (LinkList *)malloc(sizeof(LinkList)); //申请空间 r = L; for (i = 0; i < n; i++) { s->data = a[i]; r->next = s; //将 s插入r的后面, r = s; } r->next = L->next; //队伍建立完成后,最后 队尾节点为 NULL; }