静态顺序表的基本操作
2018-03-28 10:20
375 查看
顺序表:尾插,尾删,头插,头删,初始化,查,改等操作
源码: ------------------------------------------------ ************************************************ #include<stdio.h> #include<assert.h> #include<iostream> using namespace std; #define MAX_SIZE 20 typedef struct { int a[MAX_SIZE]; int size; }seqlist; //顺序表初始化 void init_list(seqlist *l) //?&l { assert(l); ////l已经有内存空间还要不要判断? l->a[10] = 0; l->size = 0; } //尾插 void last_insert(seqlist *l, int n) { assert(l); if (l->size < MAX_SIZE) { l->a[l->size] = n; l->size++; } else { cout << "空间不足" << " "; } } void last_delete(seqlist *l) { assert(l); if (l->size == 0) { cout << "顺序表元素为空" << " "; } if (l->size != 0) l->a[l->size] = 0; l->size--; } void front_insert(seqlist *l, int n) { assert(l); if (l->size == 0) l->a[l->size] = n; else { for (int j = l->size; j > 0; j--) l->a[j] = l->a[j - 1]; l->a[0] = n; } l->size++; } void front_delete(seqlist *l) { assert(l); if (l->size == 0) { printf("顺序表无元素"); } for (int i = 0; i < l->size; i++) { l->a[i] = l->a[i + 1]; } l->size--; } void read(seqlist *l, int n) { assert(l); if (n <= l->size) std::cout << n << ":" << l->a[n - 1] << " "; } void change(seqlist *l, int n, int m) { assert(l); l->a[n - 1] = m; } void print(seqlist *l) { assert(l); for (int i = 0; i < l->size; i++) printf("%d ", l->a[i]); } void find(seqlist *l, int n) { assert(l); for (int i = 0; i < l->size; i++) { if (l->a[i] == n) printf("数组下标为%d的等于%d ", i,n); } } int insert(seqlist *l, int i, int n) { if (i<1 || i>l->size + 1) { cout << "插入位置不对" << " "; return -1; } if (l->size == MAX_SIZE - 1) { cout << "存储空间不足" << " "; return -1; } for (int j = l->size; j >= i; j--) { l->a[j] = l->a[j - 1]; } l->a[i - 1] = n; l->size++; return 0; //return 1和return 0? } int main() { seqlist l; //?*l init_list(&l); last_insert(&l, 3); last_insert(&l, 5); last_insert(&l, 4); insert(&l, 4, 3); insert(&l, 6, 3); find(&l, 3); /*last_delete(&l); last_delete(&l); front_insert(&l, 11); front_insert(&l, 12); front_insert(&l, 13); front_delete(&l); front_delete(&l); front_delete(&l); last_insert(&l, 5); read(&l, 3); change(&l, 1, 9); find(&l, 4); insert(&l, 1, 3);*/ print(&l); system("pause"); return 0;
相关文章推荐
- 静态数组顺序表的基本操作实现
- 顺序表的基本操作——静态实现
- c 语言 静态顺序表 基本操作
- 静态顺序表的基本操作
- 静态顺序表的基本操作
- linux下使用vim实现基于静态数组的顺序表的一些基本操作
- 实现基于静态数组的顺序表的以下基本操作:
- 静态顺序表的基本操作
- 实现基于静态数组的顺序表的以下基本操作:
- 实现基于静态数组的顺序表的以下基本操作(进阶部分)
- 基于静态数组的顺序表的一些基本操作(2)
- 基于静态数组的顺序表的基本操作
- 静态顺序表的基本操作
- 基于静态数组的顺序表的一些基本操作(1)
- 串的静态顺序存储基本操作
- 静态顺序表的基本操作
- 实现基于静态数组的顺序表的以下基本操作:
- 数据结构系列-线性表的顺序存储及基本操作
- C语言实现顺序表的基本操作
- 【重回C】c语言之顺序表的部分基本操作