|
发表于 2016-6-30 15:54:30
|
显示全部楼层
注意:第一次循环,这个 L 是整个链表的头指针,每一次插入均在头结点的位置后边(其他所有结点的前边)插入。
见图:
头插法
- /* 头插法建立单链表示例 */
- 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));
- r = *L;
- for( i=0; i < n; i++ )
- {
- p = (Node *)malloc(sizeof(Node));
- p->data = rand()%100+1;
- r->next = p;
- r = p;
- }
- r->next = NULL;
- }
复制代码 |
|