顺序表一些基本操作(补充)
2018-03-22 18:10
281 查看
基于原本一些基础功能后,又新增一些实用功能,废话不多说,直接上代码
Seqlist.h
1 #ifndef __SEQLIST_H__
2 #define __SEQLIST_H__
3
4 #include <stdio.h>
5 #include <stdlib.h>
6
7 #define SeqlistMAX_SIZE 10
8 typedef char SeqlistType;//让类型可以重新定义
9 typedef struct Seqlist{
10 SeqlistType SeqlistArr[SeqlistMAX_SIZE];
11 size_t size;
12 }Seqlist;//静态数组的创建
13
14 void SeqlistInit(Seqlist *Seqlist);//静态数组的初始化
15 void SeqlistPrint(Seqlist *Seqlit);//顺序表的打印
16 void SeqlistPushBack(Seqlist *Seqlist, SeqlistType value);//静态数组尾插
17 void SeqlistPopBack(Seqlist *Seqlist);//静态数组尾删
18 void SeqlistPushStart(Seqlist *Seqlist,SeqlistType value);//静态数组头插
19 void SeqlistPopStart(Seqlist *Seqlist);//静态数组头删
20 SeqlistType SeqlistGet(Seqlist *Seqlist,size_t pos);//读取任意位置
21 void SeqlistSetlist(Seqlist *Seqlist,size_t pos,SeqlistType value);//修改任意位置
22 size_t SeqlistGetpos(Seqlist *Seqlist,SeqlistType value);//查找指定元素的下标
23 void SeqlistInsert(Seqlist *Seqlist,size_t pos,SeqlistType value);//指定位置插入元素
24 void SeqlistRemove(Seqlist *Seqlist,SeqlistType value);//删除顺序表中指定的值,如果存在重复元素,只删第一> 个
25 void SeqlistRemoveAll(Seqlist *Seqlist,SeqlistType value);//删除顺序表中指定的值,如果存在重复,全部删除
26 void SeqlistErase(Seqlist *Seqlist,size_t pos);//删除指定下标元素
27 void SeqlistBubbleSort(Seqlist *Seqlist);//冒泡排序
28 #endif
Seqlist.c
1 #include "Seqlist.h"
2
3 //静态数组初始化功能
4 void SeqlistInit(Seqlist *Seqlist){
5 if (Seqlist == NULL)
6 return;//防止非法输入
7 Seqlist->size = 0;
8 }
9 //顺序表的打印:
10 void SeqlistPrint(Seqlist *Seqlist){
11 if(Seqlist == NULL)//防止非法输入
12 return;
13 printf("size = %ld\n\n",Seqlist->size);
14 size_t i = 0;
15 for (;i < Seqlist->size;++i){
16 printf("[%p:][%c]\n",&Seqlist->SeqlistArr[i],Seqlist->SeqlistArr[i]);
17 }
18 }
19 //顺序表尾插
20 void SeqlistPushBack(Seqlist *Seqlist,SeqlistType value){
21 if (Seqlist == NULL)//防止非法输入
22 return;
23 if (Seqlist->size >SeqlistMAX_SIZE-1){
24 return;
25 }
26 else{
27 Seqlist->SeqlistArr[Seqlist->size] = value;
28 Seqlist->size++;
29 }
30 }
31 //顺序表尾删
32 void SeqlistPopBack(Seqlist *Seqlist){
33 if (Seqlist == NULL)//防止非法输入
34 return;
35 if (Seqlist->size == 0)
36 return;
37 else
38 Seqlist->size--;
39 }
40 //顺序表头插
41 void SeqlistPushStart(Seqlist *Seqlist,SeqlistType value){
42 if (Seqlist == NULL)//防止非法输入
43 return;
44 if (Seqlist->size>SeqlistMAX_SIZE){
45 return;
46 }
47 else{
48 SeqlistType i = Seqlist->size-1;
49 for (;i>=0;--i){
50 Seqlist->SeqlistArr[i+1] =Seqlist->SeqlistArr[i];
51 }
52 Seqlist->SeqlistArr[0] = value;
53 ++Seqlist->size;
54 }
55 }
56 //顺序表头删
57 void SeqlistPopStart(Seqlist *Seqlist){
58 if (Seqlist == NULL)//防止非法输入
59 return;
60 if (Seqlist->size>SeqlistMAX_SIZE){
61 return;
62 }
63 else{
64 SeqlistType i = 0;
65 for (;i<Seqlist->size;++i){
66 Seqlist->SeqlistArr[i] =Seqlist->SeqlistArr[i+1];
67 }
68 --Seqlist->size;
69 }
70 }
71 //读取下表为pos的元素
72 SeqlistType SeqlistGet(Seqlist *Seqlist,size_t pos){
73 if (Seqlist == NULL)//防止非法输入
74 return;
75 if (pos > Seqlist->size-1)
76 return;//pos的值大于顺序表元素个数
77 else
78 return Seqlist->SeqlistArr[pos];
79 }
80 //修改下标为pos的元素
81 void SeqlistSetlist(Seqlist* Seqlist,size_t pos,SeqlistType value){
82 if (Seqlist == NULL)//防止非法输入
83 return;
84 if (pos > Seqlist->size-1)
85 return;//pos的值大于顺序表元素个数
86
87 else
88 Seqlist->SeqlistArr[pos] = value;
89 }
90 //查找指定元素的下标
91 size_t SeqlistGetpos(Seqlist *Seqlist, SeqlistType value){
92 if (Seqlist == NULL)//防止非法输入
93 return;
94 size_t i=0;
95 for (;i<Seqlist->size;i++){
96 if (Seqlist->SeqlistArr[i] == value)
97 return i;
98 }
99 return -1;
100 }
101 //指定位置插入元素
102 void SeqlistInsert(Seqlist *Seqlist,size_t pos,SeqlistType value){
103 if (Seqlist == NULL)//防止非法输入
104 return;
105 if (Seqlist->size >= SeqlistMAX_SIZE)
106 return;
107 else if (pos > Seqlist->size-1){
108 return;//插入位置不存在
109 }
110 else{
111 SeqlistType i = Seqlist->size;
112 for (;i>=pos;i--){
113 Seqlist->SeqlistArr[i+1] = Seqlist->SeqlistArr[i];
114 }
115 Seqlist->SeqlistArr[pos] = value;
116 }
117 ++Seqlist->size;
118 }
119
120 //删除指定元素,若重复只删除第一个
121 void SeqlistRemove(Seqlist *Seqlist,SeqlistType value){
122 if (Seqlist == NULL)//防止非法输入
123 return;
124 SeqlistType i = 0;
125 for (; i < Seqlist->size;++i){
126 if (Seqlist->SeqlistArr[i] == value){
127 for(; i < Seqlist->size;++i){
128 Seqlist->SeqlistArr[i] = Seqlist->SeqlistArr[i+1];
129 }
130 // else
131 // return 1;
132 }
133 }
134 }
135 //删除指定元素,若重复则全部删除
136 void SeqlistRemoveAll(Seqlist *Seqlist,SeqlistType value){
137 if (Seqlist == NULL)//防止非法输入
138 return;
139 SeqlistType i = 0;
140 SeqlistType k = 0;
141 for (; i < Seqlist->size;i++){
142 if (Seqlist->SeqlistArr[i]==value){
143 k = i;
144 for (;k<Seqlist->size;++k){
145 Seqlist->SeqlistArr[k] =Seqlist->SeqlistArr[k+1];
146 }
147 --Seqlist->size;
148 i--;//这里赋值0是为了重新开始,防止遗漏
149 continue;
150 }
151 }
152 }
153
154 //删除指定下标元素
155 void SeqlistErase(Seqlist *Seqlist,size_t pos){
156 if (Seqlist == NULL)//防止非法输入
157 return;
158 if (pos > Seqlist->size)//非法输入
159 return;
160 else{
161 while (pos < Seqlist->size){
162 Seqlist->SeqlistArr[pos] = Seqlist->SeqlistArr[pos + 1];
163 pos++;
164 }
165 }
166 --Seqlist->size;
167 }
168
169 //冒泡排序
170 void SeqlistBubbleSort(Seqlist *Seqlist){
171 SeqlistType i = 0;
172 SeqlistType j=0;
173 SeqlistType k = 0;
174 for (; i < Seqlist->size-1;i++){
175 if(Seqlist->SeqlistArr[i] > Seqlist->SeqlistArr[i+1]){
176 k = Seqlist->SeqlistArr[i+1];
177 Seqlist->SeqlistArr[i+1]=Seqlist->SeqlistArr[i];
178 Seqlist->SeqlistArr[i]=k;
179 i=0;
180 }
181 }
182 }
test.c
1 #include "Seqlist.h"
2 void TestSeqlistInit(){
3 Seqlist Seqlist;
4 SeqlistInit(&Seqlist);
5 SeqlistPrint(&Seqlist);
6 }
7
8 void TestSeqlistPushBack(){
9 Seqlist Seqlist;
10 SeqlistInit(&Seqlist);
11 printf("顺序表尾插之前\n");
12 SeqlistPrint(&Seqlist);
13 SeqlistPushBack(&Seqlist,'a');
14 SeqlistPushBack(&Seqlist,'b');
15 SeqlistPushBack(&Seqlist,'c');
16 SeqlistPushBack(&Seqlist,'d');
1
aefe
7 printf("顺序表尾插之后\n");
18 SeqlistPrint(&Seqlist);
19 }
20
21 void TestSeqlistPopBack(){
22 Seqlist Seqlist;
23 // SeqlistInit(&Seqlist);
24 printf("顺序表尾删之前\n");
25 SeqlistPrint(&Seqlist);
26 SeqlistPopBack(&Seqlist);
27 printf("顺序表尾删之后\n");
28 SeqlistPrint(&Seqlist);
29 }
30
31 void TestSeqlistPushStart(){
32 Seqlist Seqlist;
33 //SeqlistInit(&Seqlist);
34 printf("顺序表头插之前\n");
35 SeqlistPrint(&Seqlist);
36 SeqlistPushStart(&Seqlist,'e');
37 printf("顺序表头插之后\n");
38 SeqlistPrint(&Seqlist);
39 }
40
41 void TestSeqlistPopStart(){
42 Seqlist Seqlist;
43 // SeqlistInit(&Seqlist);
44 printf("顺序表头删之前\n");
45 SeqlistPrint(&Seqlist);
46 SeqlistPopStart(&Seqlist);
47 printf("顺序表头删之后\n");
48 SeqlistPrint(&Seqlist);
49 }
50
51 SeqlistType TestSeqlistGet(){
52 Seqlist Seqlist;
53 printf("寻找下标为1的元素:");
54 printf("[%c]\n\n",SeqlistGet(&Seqlist,1));
55 }
56
57 void TestSeqlistSetlist(){
58 Seqlist Seqlist;
59 printf("修改下标为1的元素前:");
60 SeqlistPrint(&Seqlist);
61 SeqlistSetlist(&Seqlist,1,'f');
62 printf("修改下表为1的元素后:");
63 SeqlistPrint(&Seqlist);
64 }
65 SeqlistType TestSeqlistGetpos(){
66 Seqlist Seqlist;
67 printf("寻找元素c的下标:");
68 printf("其下标为[%d]\n\n",SeqlistGetpos(&Seqlist,'c'));
69 }
70
71 void TestSeqlistInsert(){
72 Seqlist Seqlist;
73 printf("在插入之前:");
74 SeqlistPrint(&Seqlist);
75 SeqlistInsert(&Seqlist,2,'m');
76 printf("在插入之后:");
77 SeqlistPrint(&Seqlist);
78 }
79
80 void TestSeqlistRemove(){
81 Seqlist Seqlist;
82 SeqlistInit(&Seqlist);
83 SeqlistPushBack(&Seqlist,'a');
84 SeqlistPushBack(&Seqlist,'b');
85 SeqlistPushBack(&Seqlist,'c');
86 SeqlistPushBack(&Seqlist,'c');
87 SeqlistPushBack(&Seqlist,'c');
88 SeqlistPushBack(&Seqlist,'d');
89 printf("顺序表删除指定元素之前\n");
90 SeqlistPrint(&Seqlist);
91 SeqlistRemove(&Seqlist,'c');
92 printf("顺序表删除指定元素之后\n");
93 SeqlistPrint(&Seqlist);
94 }
95 void TestSeqlistRemoveAll(){
96 Seqlist Seqlist;
97 SeqlistInit(&Seqlist);
98 SeqlistPushBack(&Seqlist,'a');
99 SeqlistPushBack(&Seqlist,'b');
100 SeqlistPushBack(&Seqlist,'b');
101 SeqlistPushBack(&Seqlist,'c');
102 SeqlistPushBack(&Seqlist,'c');
103 SeqlistPushBack(&Seqlist,'c');
104 SeqlistPushBack(&Seqlist,'d');
105 printf("顺序表删除指定元素全删之前\n");
106 SeqlistPrint(&Seqlist);
107 SeqlistRemoveAll(&Seqlist,'b');
108 printf("顺序表删除指定元素全删之后\n");
109 SeqlistPrint(&Seqlist);
110 }
111 void TestSeqlistErase(){
112 Seqlist Seqlist;
113 SeqlistInit(&Seqlist);
114 SeqlistPushBack(&Seqlist,'a');
115 SeqlistPushBack(&Seqlist,'b');
116 SeqlistPushBack(&Seqlist,'b');
117 SeqlistPushBack(&Seqlist,'c');
118 SeqlistPushBack(&Seqlist,'c');
119 SeqlistPushBack(&Seqlist,'c');
120 SeqlistPushBack(&Seqlist,'d');
121 printf("顺序表删除指定下标元素之前\n");
122 SeqlistPrint(&Seqlist);
123 SeqlistErase(&Seqlist,3);
124 printf("顺序表删除指定下标元素之后\n");
125 SeqlistPrint(&Seqlist);
126 }
127
128 void TestSeqlistBubbleSort(){
129 Seqlist Seqlist;
130 SeqlistInit(&Seqlist);
131 SeqlistPushBack(&Seqlist,'a');
132 SeqlistPushBack(&Seqlist,'c');
133 SeqlistPushBack(&Seqlist,'d');
134 SeqlistPushBack(&Seqlist,'b');
135 printf("顺序表冒泡排序之前\n");
136 SeqlistPrint(&Seqlist);
137 SeqlistBubbleSort(&Seqlist);
138 printf("顺序表冒泡排序之后\n");
139 SeqlistPrint(&Seqlist);
140 }
141
142
143
144 int main(){
145 TestSeqlistInit();
146 TestSeqlistPushBack();
147 TestSeqlistPushStart();
148 TestSeqlistPopBack();
149 TestSeqlistPopStart();
150 TestSeqlistGet();
151 TestSeqlistGetpos();
152 TestSeqlistInsert();
153 TestSeqlistRemove();
154 TestSeqlistRemoveAll();
155 TestSeqlistErase();
156 TestSeqlistBubbleSort();
157 return 0;
158 }
Seqlist.h
1 #ifndef __SEQLIST_H__
2 #define __SEQLIST_H__
3
4 #include <stdio.h>
5 #include <stdlib.h>
6
7 #define SeqlistMAX_SIZE 10
8 typedef char SeqlistType;//让类型可以重新定义
9 typedef struct Seqlist{
10 SeqlistType SeqlistArr[SeqlistMAX_SIZE];
11 size_t size;
12 }Seqlist;//静态数组的创建
13
14 void SeqlistInit(Seqlist *Seqlist);//静态数组的初始化
15 void SeqlistPrint(Seqlist *Seqlit);//顺序表的打印
16 void SeqlistPushBack(Seqlist *Seqlist, SeqlistType value);//静态数组尾插
17 void SeqlistPopBack(Seqlist *Seqlist);//静态数组尾删
18 void SeqlistPushStart(Seqlist *Seqlist,SeqlistType value);//静态数组头插
19 void SeqlistPopStart(Seqlist *Seqlist);//静态数组头删
20 SeqlistType SeqlistGet(Seqlist *Seqlist,size_t pos);//读取任意位置
21 void SeqlistSetlist(Seqlist *Seqlist,size_t pos,SeqlistType value);//修改任意位置
22 size_t SeqlistGetpos(Seqlist *Seqlist,SeqlistType value);//查找指定元素的下标
23 void SeqlistInsert(Seqlist *Seqlist,size_t pos,SeqlistType value);//指定位置插入元素
24 void SeqlistRemove(Seqlist *Seqlist,SeqlistType value);//删除顺序表中指定的值,如果存在重复元素,只删第一> 个
25 void SeqlistRemoveAll(Seqlist *Seqlist,SeqlistType value);//删除顺序表中指定的值,如果存在重复,全部删除
26 void SeqlistErase(Seqlist *Seqlist,size_t pos);//删除指定下标元素
27 void SeqlistBubbleSort(Seqlist *Seqlist);//冒泡排序
28 #endif
Seqlist.c
1 #include "Seqlist.h"
2
3 //静态数组初始化功能
4 void SeqlistInit(Seqlist *Seqlist){
5 if (Seqlist == NULL)
6 return;//防止非法输入
7 Seqlist->size = 0;
8 }
9 //顺序表的打印:
10 void SeqlistPrint(Seqlist *Seqlist){
11 if(Seqlist == NULL)//防止非法输入
12 return;
13 printf("size = %ld\n\n",Seqlist->size);
14 size_t i = 0;
15 for (;i < Seqlist->size;++i){
16 printf("[%p:][%c]\n",&Seqlist->SeqlistArr[i],Seqlist->SeqlistArr[i]);
17 }
18 }
19 //顺序表尾插
20 void SeqlistPushBack(Seqlist *Seqlist,SeqlistType value){
21 if (Seqlist == NULL)//防止非法输入
22 return;
23 if (Seqlist->size >SeqlistMAX_SIZE-1){
24 return;
25 }
26 else{
27 Seqlist->SeqlistArr[Seqlist->size] = value;
28 Seqlist->size++;
29 }
30 }
31 //顺序表尾删
32 void SeqlistPopBack(Seqlist *Seqlist){
33 if (Seqlist == NULL)//防止非法输入
34 return;
35 if (Seqlist->size == 0)
36 return;
37 else
38 Seqlist->size--;
39 }
40 //顺序表头插
41 void SeqlistPushStart(Seqlist *Seqlist,SeqlistType value){
42 if (Seqlist == NULL)//防止非法输入
43 return;
44 if (Seqlist->size>SeqlistMAX_SIZE){
45 return;
46 }
47 else{
48 SeqlistType i = Seqlist->size-1;
49 for (;i>=0;--i){
50 Seqlist->SeqlistArr[i+1] =Seqlist->SeqlistArr[i];
51 }
52 Seqlist->SeqlistArr[0] = value;
53 ++Seqlist->size;
54 }
55 }
56 //顺序表头删
57 void SeqlistPopStart(Seqlist *Seqlist){
58 if (Seqlist == NULL)//防止非法输入
59 return;
60 if (Seqlist->size>SeqlistMAX_SIZE){
61 return;
62 }
63 else{
64 SeqlistType i = 0;
65 for (;i<Seqlist->size;++i){
66 Seqlist->SeqlistArr[i] =Seqlist->SeqlistArr[i+1];
67 }
68 --Seqlist->size;
69 }
70 }
71 //读取下表为pos的元素
72 SeqlistType SeqlistGet(Seqlist *Seqlist,size_t pos){
73 if (Seqlist == NULL)//防止非法输入
74 return;
75 if (pos > Seqlist->size-1)
76 return;//pos的值大于顺序表元素个数
77 else
78 return Seqlist->SeqlistArr[pos];
79 }
80 //修改下标为pos的元素
81 void SeqlistSetlist(Seqlist* Seqlist,size_t pos,SeqlistType value){
82 if (Seqlist == NULL)//防止非法输入
83 return;
84 if (pos > Seqlist->size-1)
85 return;//pos的值大于顺序表元素个数
86
87 else
88 Seqlist->SeqlistArr[pos] = value;
89 }
90 //查找指定元素的下标
91 size_t SeqlistGetpos(Seqlist *Seqlist, SeqlistType value){
92 if (Seqlist == NULL)//防止非法输入
93 return;
94 size_t i=0;
95 for (;i<Seqlist->size;i++){
96 if (Seqlist->SeqlistArr[i] == value)
97 return i;
98 }
99 return -1;
100 }
101 //指定位置插入元素
102 void SeqlistInsert(Seqlist *Seqlist,size_t pos,SeqlistType value){
103 if (Seqlist == NULL)//防止非法输入
104 return;
105 if (Seqlist->size >= SeqlistMAX_SIZE)
106 return;
107 else if (pos > Seqlist->size-1){
108 return;//插入位置不存在
109 }
110 else{
111 SeqlistType i = Seqlist->size;
112 for (;i>=pos;i--){
113 Seqlist->SeqlistArr[i+1] = Seqlist->SeqlistArr[i];
114 }
115 Seqlist->SeqlistArr[pos] = value;
116 }
117 ++Seqlist->size;
118 }
119
120 //删除指定元素,若重复只删除第一个
121 void SeqlistRemove(Seqlist *Seqlist,SeqlistType value){
122 if (Seqlist == NULL)//防止非法输入
123 return;
124 SeqlistType i = 0;
125 for (; i < Seqlist->size;++i){
126 if (Seqlist->SeqlistArr[i] == value){
127 for(; i < Seqlist->size;++i){
128 Seqlist->SeqlistArr[i] = Seqlist->SeqlistArr[i+1];
129 }
130 // else
131 // return 1;
132 }
133 }
134 }
135 //删除指定元素,若重复则全部删除
136 void SeqlistRemoveAll(Seqlist *Seqlist,SeqlistType value){
137 if (Seqlist == NULL)//防止非法输入
138 return;
139 SeqlistType i = 0;
140 SeqlistType k = 0;
141 for (; i < Seqlist->size;i++){
142 if (Seqlist->SeqlistArr[i]==value){
143 k = i;
144 for (;k<Seqlist->size;++k){
145 Seqlist->SeqlistArr[k] =Seqlist->SeqlistArr[k+1];
146 }
147 --Seqlist->size;
148 i--;//这里赋值0是为了重新开始,防止遗漏
149 continue;
150 }
151 }
152 }
153
154 //删除指定下标元素
155 void SeqlistErase(Seqlist *Seqlist,size_t pos){
156 if (Seqlist == NULL)//防止非法输入
157 return;
158 if (pos > Seqlist->size)//非法输入
159 return;
160 else{
161 while (pos < Seqlist->size){
162 Seqlist->SeqlistArr[pos] = Seqlist->SeqlistArr[pos + 1];
163 pos++;
164 }
165 }
166 --Seqlist->size;
167 }
168
169 //冒泡排序
170 void SeqlistBubbleSort(Seqlist *Seqlist){
171 SeqlistType i = 0;
172 SeqlistType j=0;
173 SeqlistType k = 0;
174 for (; i < Seqlist->size-1;i++){
175 if(Seqlist->SeqlistArr[i] > Seqlist->SeqlistArr[i+1]){
176 k = Seqlist->SeqlistArr[i+1];
177 Seqlist->SeqlistArr[i+1]=Seqlist->SeqlistArr[i];
178 Seqlist->SeqlistArr[i]=k;
179 i=0;
180 }
181 }
182 }
test.c
1 #include "Seqlist.h"
2 void TestSeqlistInit(){
3 Seqlist Seqlist;
4 SeqlistInit(&Seqlist);
5 SeqlistPrint(&Seqlist);
6 }
7
8 void TestSeqlistPushBack(){
9 Seqlist Seqlist;
10 SeqlistInit(&Seqlist);
11 printf("顺序表尾插之前\n");
12 SeqlistPrint(&Seqlist);
13 SeqlistPushBack(&Seqlist,'a');
14 SeqlistPushBack(&Seqlist,'b');
15 SeqlistPushBack(&Seqlist,'c');
16 SeqlistPushBack(&Seqlist,'d');
1
aefe
7 printf("顺序表尾插之后\n");
18 SeqlistPrint(&Seqlist);
19 }
20
21 void TestSeqlistPopBack(){
22 Seqlist Seqlist;
23 // SeqlistInit(&Seqlist);
24 printf("顺序表尾删之前\n");
25 SeqlistPrint(&Seqlist);
26 SeqlistPopBack(&Seqlist);
27 printf("顺序表尾删之后\n");
28 SeqlistPrint(&Seqlist);
29 }
30
31 void TestSeqlistPushStart(){
32 Seqlist Seqlist;
33 //SeqlistInit(&Seqlist);
34 printf("顺序表头插之前\n");
35 SeqlistPrint(&Seqlist);
36 SeqlistPushStart(&Seqlist,'e');
37 printf("顺序表头插之后\n");
38 SeqlistPrint(&Seqlist);
39 }
40
41 void TestSeqlistPopStart(){
42 Seqlist Seqlist;
43 // SeqlistInit(&Seqlist);
44 printf("顺序表头删之前\n");
45 SeqlistPrint(&Seqlist);
46 SeqlistPopStart(&Seqlist);
47 printf("顺序表头删之后\n");
48 SeqlistPrint(&Seqlist);
49 }
50
51 SeqlistType TestSeqlistGet(){
52 Seqlist Seqlist;
53 printf("寻找下标为1的元素:");
54 printf("[%c]\n\n",SeqlistGet(&Seqlist,1));
55 }
56
57 void TestSeqlistSetlist(){
58 Seqlist Seqlist;
59 printf("修改下标为1的元素前:");
60 SeqlistPrint(&Seqlist);
61 SeqlistSetlist(&Seqlist,1,'f');
62 printf("修改下表为1的元素后:");
63 SeqlistPrint(&Seqlist);
64 }
65 SeqlistType TestSeqlistGetpos(){
66 Seqlist Seqlist;
67 printf("寻找元素c的下标:");
68 printf("其下标为[%d]\n\n",SeqlistGetpos(&Seqlist,'c'));
69 }
70
71 void TestSeqlistInsert(){
72 Seqlist Seqlist;
73 printf("在插入之前:");
74 SeqlistPrint(&Seqlist);
75 SeqlistInsert(&Seqlist,2,'m');
76 printf("在插入之后:");
77 SeqlistPrint(&Seqlist);
78 }
79
80 void TestSeqlistRemove(){
81 Seqlist Seqlist;
82 SeqlistInit(&Seqlist);
83 SeqlistPushBack(&Seqlist,'a');
84 SeqlistPushBack(&Seqlist,'b');
85 SeqlistPushBack(&Seqlist,'c');
86 SeqlistPushBack(&Seqlist,'c');
87 SeqlistPushBack(&Seqlist,'c');
88 SeqlistPushBack(&Seqlist,'d');
89 printf("顺序表删除指定元素之前\n");
90 SeqlistPrint(&Seqlist);
91 SeqlistRemove(&Seqlist,'c');
92 printf("顺序表删除指定元素之后\n");
93 SeqlistPrint(&Seqlist);
94 }
95 void TestSeqlistRemoveAll(){
96 Seqlist Seqlist;
97 SeqlistInit(&Seqlist);
98 SeqlistPushBack(&Seqlist,'a');
99 SeqlistPushBack(&Seqlist,'b');
100 SeqlistPushBack(&Seqlist,'b');
101 SeqlistPushBack(&Seqlist,'c');
102 SeqlistPushBack(&Seqlist,'c');
103 SeqlistPushBack(&Seqlist,'c');
104 SeqlistPushBack(&Seqlist,'d');
105 printf("顺序表删除指定元素全删之前\n");
106 SeqlistPrint(&Seqlist);
107 SeqlistRemoveAll(&Seqlist,'b');
108 printf("顺序表删除指定元素全删之后\n");
109 SeqlistPrint(&Seqlist);
110 }
111 void TestSeqlistErase(){
112 Seqlist Seqlist;
113 SeqlistInit(&Seqlist);
114 SeqlistPushBack(&Seqlist,'a');
115 SeqlistPushBack(&Seqlist,'b');
116 SeqlistPushBack(&Seqlist,'b');
117 SeqlistPushBack(&Seqlist,'c');
118 SeqlistPushBack(&Seqlist,'c');
119 SeqlistPushBack(&Seqlist,'c');
120 SeqlistPushBack(&Seqlist,'d');
121 printf("顺序表删除指定下标元素之前\n");
122 SeqlistPrint(&Seqlist);
123 SeqlistErase(&Seqlist,3);
124 printf("顺序表删除指定下标元素之后\n");
125 SeqlistPrint(&Seqlist);
126 }
127
128 void TestSeqlistBubbleSort(){
129 Seqlist Seqlist;
130 SeqlistInit(&Seqlist);
131 SeqlistPushBack(&Seqlist,'a');
132 SeqlistPushBack(&Seqlist,'c');
133 SeqlistPushBack(&Seqlist,'d');
134 SeqlistPushBack(&Seqlist,'b');
135 printf("顺序表冒泡排序之前\n");
136 SeqlistPrint(&Seqlist);
137 SeqlistBubbleSort(&Seqlist);
138 printf("顺序表冒泡排序之后\n");
139 SeqlistPrint(&Seqlist);
140 }
141
142
143
144 int main(){
145 TestSeqlistInit();
146 TestSeqlistPushBack();
147 TestSeqlistPushStart();
148 TestSeqlistPopBack();
149 TestSeqlistPopStart();
150 TestSeqlistGet();
151 TestSeqlistGetpos();
152 TestSeqlistInsert();
153 TestSeqlistRemove();
154 TestSeqlistRemoveAll();
155 TestSeqlistErase();
156 TestSeqlistBubbleSort();
157 return 0;
158 }
相关文章推荐
- 数据结构之顺序栈的一些基本操作
- 基于静态数组的顺序表的一些基本操作(1)
- linux下使用vim实现基于静态数组的顺序表的一些基本操作
- 基于静态数组的顺序表的一些基本操作(2)
- 顺序表的一些基本操作
- vim的一些基本操作
- Linux图形界面一些基本操作技巧
- 顺序表的基本操作实现及其应用(实验1)
- 用顺序栈实现栈的基本操作
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
- 单文档多视图一些基本操作
- Oracle一些基本操作
- 使用Python操作MySQL的一些基本方法
- shell中用于比较的一些基本的操作总结
- 顺序队列基本操作
- 顺序表基本操作C++实现
- 数据结构——顺序表及其基本操作
- PHP操作文件的一些基本函数使用示例
- 《矩阵的一些基本操作》
- 静态顺序表的一些操作