【数据结构与算法】线性表操作(C语言)

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #define OK 1
 4 #define NO 0
 5 #define MAXSIZE 20
 6 typedef int bool;
 7 int nn = 0;
 8 
 9 typedef struct
10 {
11     int data[MAXSIZE];
12     int len;
13 } Sqlist;
14 void initList(Sqlist *L)  ///传递结点地址而已,怎么会初始链表
15 {
16     L->len = 0;
17 }
18 int findElem(Sqlist L, int n)
19 {
20     int e;
21     if (n>L.len)
22         return 0;
23     return L.data[n - 1];
24 }
25 bool listInsert(Sqlist *L, int n, int data)
26 {
27     int i;
28     if (L->len == MAXSIZE || n>L->len + 1)
29         return 0;
30 
31 
32     for (i = L->len + 1; i >= n; i--)
33     {
34         if (L->len == MAXSIZE - 1)
35             break;
36         L->data[i] = L->data[i - 1];
37     }
38     L->data[n - 1] = ++nn;
39     L->len++;
40     return 1;
41 }
42 bool listDelete(Sqlist *L, int n, int *e)
43 {
44     int i;
45     if (L->len == 0)
46         return 0;
47     for (i = n - 1; i <= MAXSIZE - 1; i++)
48     {
49         if (i == MAXSIZE - 1)
50             break;
51         L->data[i] = L->data[i + 1];
52     }
53     L->len--;
54     return 1;
55 
56 }
57 
58 void showList(Sqlist L)
59 {
60     int i;
61     for (i = 0; i<L.len; i++){
62         printf("%d\n", L.data[i]);
63     }
64 }
65 void main222()
66 {
67     Sqlist L;
68     initList(&L);   ///这怎么就把结点初始化为链表了?
69     int i;
70     int temp;
71     for (i = 1; i <= 5; i++)
72     {
73         if (!listInsert(&L, i, i))
74             printf("no");
75     }
76 
77     showList(L);
78 
79 }

猜你喜欢

转载自www.cnblogs.com/dream-to-pku/p/11422934.html