顺序表的基本操作

    技术2022-07-11  97

    主要是考察数据结构顺序表的定义以及增删改查等操作实现 #include<stdio.h> #define MAXSIZE 50 //结构体定义顺序表 typedef struct{ int data[MAXSIZE]; int len; }SQlist; //顺序表的初始化 void Init(SQlist &q){ q.len = 0; } //创建顺序表 bool Create_List(SQlist &q, int *a, int n){ // 是否超出顺序表范围 if(n > MAXSIZE){ printf("超出顺序表范围"); return false; } for(int i = 0; i < MAXSIZE; i++){ q.data[i+1] = a[i]; } q.len = n; printf("顺序表创建成功\n"); return true; } //判断顺序表是否为空 int Is_void(SQlist &q){ if(q.len < 1) { printf("顺序表为空"); return 0; }else if(q.len == MAXSIZE-1) { printf("顺序表已满"); return 2; } else return 1; } //顺序表的遍历 void Output(SQlist &q){ printf("顺序表依次是:"); for(int i = 0; i<q.len; i++){ printf("%d ", q.data[i+1]); } } //顺序表的第i个位置插入一个元素e bool Insert_element(SQlist &q, int e, int i){ if(Is_void(q) == 2) return false; if(i < 1 || i > q.len + 1) return false; for(int j = q.len;j >= i; j--) q.data[j+1] = q.data[j]; q.data[i] = e; q.len++; return true; } //顺序表删除操作,指定位置 bool Delete(SQlist &q, int i){ if(Is_void(q) == 0) return false; for(int j = i; j < q.len; j++){ q.data[j] = q.data[j+1]; } q.len--; return true; } //顺序表的按值查找 bool Search_data(SQlist &q, int e){ if(Is_void(q) == 0) return false; for(int i = 1;i <= q.len;i++){ if(e == q.data[i]) return true; else{ printf("所查找的元素%d不存在\n", e); return false; } } } int main(){ int a[] = {1,2,3,4,5}; SQlist q; Init(q); Create_List(q, a, 5); Insert_element(q, 2, 3); Delete(q, 4); Search_data(q, 10); Output(q); return 0; } 该部分的代码都是采用直接的赋值操作,并不符合通用的情况
    Processed: 0.011, SQL: 9