题目:创建一个静态链表,将数组存入链表。查找第3个元素并输出该元素的值,然后释放该结点。
要求:实现静态链表的初始化、分配结点、释放结点功能。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
typedef struct{
int data;
int cur;
}ct,slinklist[MAX];
void init(slinklist space)
{
int i = 0;
for(i = 0; i < MAX - 1; i++)
{
space[i].cur = i + 1;
}
}
int link(slinklist space)
{
int i;
i = space[0].cur;
if(space[0].cur)
space[0].cur = space[i].cur;
return i;
}
int select(slinklist space, int e)
{
int i;
i = space[0].cur;
while(i && i <= 3)
i=space[i].cur;
return space[i].data;
}
int main()
{
int s, r, m, i, j;
ct space[MAX];
init(space);
s = link(space);
r = s;
printf("链表长度:");
scanf("%d", &m);
printf("初始化链表:");
for(j = 1;j <= m; j++)
{
i = link(space);
scanf("%d", &space[i].data);
space[r].cur = i;
r = i;
}
printf("第3个结点为:%d", space[4].data);
return 0;
}
|