20-数据结构

数据结构

C语法讲完了。语法C语言一套跟计算机交流的语言。经典的东西:歇后语 成语

语法都是前面讲过,经过提炼的。用来处理数据的抽象的方法。

 

线性表  顺序表  链表(单链表 双向链表)

栈和队列

线性表 队列

 

线性表: 1、顺序表(数组):是存放在连续的存储空间。

2、链表(单链表):单一的存放,使用指针把单一的单元连在一起。

typedef 取别名

 

 

1、初始化

1 Size = 02 
3 //初始化一个顺序表
4 void SeqListInit(SeqList *L)
5 {
6   L->size = 0;
7 }
8  

 

2、插入:把插入的位置之后的数据往后移动,腾出一个空间给新的数据。

 20-数据结构_第1张图片

 1 //插入数据  插入成功返回1  插入失败返回0
 2 int SeqListInsert(SeqList *L, int num, int data)  //在顺序表L中第num个位置之前插入一个数据data
 3 {
 4     if (L->size >= MAXSIZE)
 5     {
 6         printf("顺序表已满\n");
 7         return 0;
 8     }
 9     else if (num <= 0 || num > L->size)
10     {
11         printf("你输入的num不合法!\n");
12         return 0;
13     }
14     else
15     {
16         for (int i = L->size; i > num; i--)  //6ci
17         {
18             L->data[i] = L->data[i - 1];   //size 10  data[0-9]  10  
19         }
20  
21         L->data[num] = data;
22         L->size++;
23         return 0;
24     }
25 }

 

3、删除

把后面的内容往前移。

 1 int SeqListDelete(SeqList *L, int num)  //删除第num个元素
 2 {
 3     if (L->size <= 0)  //NULL  L->size  大小 NULL 内存
 4     {
 5         printf("顺序表里面没有数据。\n");
 6         return 0;
 7     }
 8     else if (num < 0 || num >= L->size)
 9     {
10         printf("你输入的num不合法。\n");
11         return 0;
12     }
13     else  // {}   ()    []    ""   ''   <>  /* .... */
14         {
15         for (int i = num; i < L->size; i++)  //for 第一重要的事情就是判断循环的次数
16         {
17             L->data[i-1] = L->data[i];
18         }
19 
20         L->size--;
21         return 1;
22     }
23 }

 

4、查找 找到之后修改就很简单了。

 1 int SeqListGet(SeqList *L, int num,int data)  //修改
 2 {
 3     if (num<0 || num>L->size - 1)
 4     {
 5         printf("输入的num不合法\n");
 6         return 0;
 7     }
 8     else
 9     {
10         printf("%d\t", L->data[num - 1]);
11         L->data[num - 1] = data;
12     }
13 }

 

转载于:https://www.cnblogs.com/tiantiancode/p/11131905.html

你可能感兴趣的:(20-数据结构)