int data
struct Node* ptr
} Node
然后在一个一个添加。你只需要记录好头节点。
Node *head = NULL我们插入第一个节点
Node *newnode= (Node*)malloc(sizeof(Node))newnode->data = 1
newnode->ptr = NULL
把这个节点加入到head或者其他节点下面
head = newnode双层链表是什么?数组链表还是双链表,如果是后者,使用尾查发的时候多一行代码就OK,就是指向前面一个节点。1 #include<stdio.h>
2 #include<malloc.h>
3 struct nodeone
4 {
5 int data
6 struct nodeone *next
7 struct nodeone *down
8 }
9
10 struct nodetwo
11 {
12 int data
13 struct nodetwo *two
14 }
15 void main()
16 {
17 int i = 0, j = 0
18 struct nodeone *head, *p1, *p2, *p3
19 p2 = head = (struct nodeone*)malloc(sizeof(struct nodeone))
20 while(i <10)
21 {
22 p1 = (struct nodeone*)malloc(sizeof(struct nodeone))
23 p1->down = NULL
24 while(j <5)
25 {
26 p3 = (struct nodetwo*)malloc(sizeof(struct nodetwo))
27 p3->next = p1->down
28 p1->down = p3
j++
29 }
30 p2->next = p1
31 p2 = p1
i++ //忘记了这两个计数变量,i和j。
32 }
33 p2->next = NULL
34 }
~
理论上是对的,Linux下编译通过。外层使用尾插,内层使用头插,主要是为了减少一个变量。
我以前没有听过双层链表,不过记住这些名字还是有点用处。