主要是考察数据结构顺序表的定义以及增删改查等操作实现
#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]);
}
}
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;
}
该部分的代码都是采用直接的赋值操作,并不符合通用的情况
转载请注明原文地址:https://ipadbbs.8miu.com/read-19599.html