首页 > 其他 > 详细

学习(五)线性表

时间:2019-10-31 20:29:50      阅读:82      评论:0      收藏:0      [点我收藏+]

定义:线性表是由同组数据类型组成的有限序列

特点:每个元素只有唯一前驱和后驱

基本操作:

(1)     置表空

(2)     求表长

(3)     按序号取元素

(4)     按值查找元素

(5)     判表满

(6)     插入

(7)     删除

下面是一部分顺序表的代码:

 

 1 #pragma once
 2 #include <malloc.h>
 3 #define max_size 100
 4 struct Sequenlist
 5 {
 6     int data[max_size];
 7     int last;
 8 };
 9 
10 void SqLsetnull(Sequenlist* q) {
11     q->last = -1;
12 }
13 Sequenlist* SqLBuild() {
14     Sequenlist* q = (Sequenlist*)malloc(sizeof(Sequenlist));
15     q->last = -1;
16     return q;
17 }
18 int getLength(Sequenlist* q) {
19     return q->last + 1;
20 }
21 int getData(Sequenlist* q, int i) {
22     if (i > 0 && i < q->last + 1) {
23         return q->data[i - 1];
24     }
25     else
26     {
27         return 0;
28     }
29 }
30 int getIndex(Sequenlist* q, int value) {
31     int i;
32     for (i = 0; i < getLength(q); i++)
33     {
34         if (q->data[i] == value) {
35             return i + 1;
36         }
37     }
38     return 0;
39 }
40 int isFull(Sequenlist* q) {
41     if (q->last + 1 == max_size) {
42         return 1;
43     }
44     else
45     {
46         return 0;
47     }
48 }
49 int isEmpty(Sequenlist* q) {
50     if (q->last == -1) {
51         return 1;
52     }
53     else
54     {
55         return 0;
56     }
57 }
58 int insert(Sequenlist* q, int i, int value) {
59     int y;
60     if (getLength(q) + 1 >= max_size) {
61         return 0;//存储空间满了
62     }
63     else if (i > 0 && i <= q->last + 2) {
64         for (y = i - 1; y < q->last + 1; y++) {
65             q->data[y + 1] = q->data[y];
66             
67         }
68         q->data[i - 1] = value;
69         q->last++;
70         return 1;
71     }
72     else
73     {
74         return 0;//超出范围
75     }
76 }
77 int SqLdelete(Sequenlist* q, int i) {
78     int a;
79     if (isEmpty(q)) {
80         return 0;
81     }
82     else if (i > 0 && i <= q->last + 1) {
83         for (a = i - 1; a < q->last; a++) {
84             q->data[a] = q->data[a + 1];
85 
86         }
87         q->last--;
88         return 1;
89     }
90     else
91     {
92         return 0;
93     }
94 }

 

学习(五)线性表

原文:https://www.cnblogs.com/zhf520/p/11773527.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!