数据结构顺序表的基本操作编程c语言,数据结构c语言实现顺序表基本操作

#include

#include

#define MAXSIZE 100

#define ElemType int

typedef struct{

ElemType Data[MAXSIZE];

int length;

}seqList;

void initList(seqList *L){

L->length = 0;

}

int insertList(seqList *L,int pos,ElemType ele){

int i;

if(pos<0||pos>=MAXSIZE){

return 0;

}

else{

for(i=L->length;i>=pos;i--){

L->Data[i+1]=L->Data[i];

}

L->Data[pos] = ele;

L->length++;

return 1;

}

}

int getElem(seqList L,int pos){

int i;

if(pos<0||pos>=L.length){

return 0;

}

else{

return L.Data[pos];

}

}

int DeleteList(seqList *L,int pos){

int i;

if(pos<0||pos>=MAXSIZE){

return 0;

}

else{

for(i=pos;ilength;i++){

L->Data[i-1] = L->Data[i];

}

L->length--;

return 1;

}

}

int isEmpty(seqList L){

if(L.length==0){

return 1;

}

else{

return 0;

}

}

int LocateElem(seqList *L,ElemType ele){

int i;

for(i=0;ilength;i++){

if(L->Data[i]==ele)

return i;

}

return -1;

}

int printList(seqList *L){

int i;

for(i=0;ilength;i++){

printf("%d ",L->Data[i]);

}

}

int main(){

seqList L;

char c;

printf("===========请输入您的选择=============\n");

printf("1.初始化顺序表\t\t 2.添加元素\t\t 3.删除元素\n");

printf("4.打印元素\t\t 5.查询元素位置\t\t #.退出\n");

while(scanf("%c",&c)!='#'){

getchar();

if(c=='1'){

initList(&L);

printf("初始化成功\n");

}

else if(c=='2'){

int ele;

char d;

int i=0;

printf("请输入您要添加的元素:\n");

scanf("%d",&ele);

insertList(&L,i,ele);

i++;

printf("是否停止添加元素n/y:\n");

getchar();

d=getchar();

while(d=='n'){

scanf("%d",&ele);

getchar();

insertList(&L,i,ele);

i++;

printf("是否停止添加元素n/y:\n");

d=getchar();

}

getchar();

}

else if(c=='3'){

int pos;

char d;

printf("请输入您要删除的位置:\n");

scanf("%d",&pos);

DeleteList(&L,pos);

printf("是否停止删除N/Y:\n");

getchar();

while(scanf("%c",&d)=='n'){

getchar();

scanf("%d",&pos);

DeleteList(&L,pos);

printf("是否停止删除n/y:\n");

}

getchar();

printf("请输入您的选择:\n");

}

else if(c=='4'){

printList(&L);

getchar();

}

else if(c=='5'){

int quele;

printf("请输入您要查询的元素:\n");

scanf("%d",&quele);

int a = LocateElem(&L,quele);

printf("%d\n",a);

getchar();

}

else if(c=='#'){

break;

}

else{

printf("请输入合法的选择:\n");

getchar();

}

}

}

使用c++实现顺序表:多文件编程,层次清晰,函数有注释 SeqList();//构造函数,存储的元素个数设为0 bool setLength(size_t length);//设置已经存储的元素个数 bool addElement(ElemType element);//把某个元素添加到顺序表末尾 bool addElement(ElemType element , size_t n);//插入一个元素,使其成为第n个元素,其余元素后移 bool delElement();//删除所有的元素 bool delElement(size_t n);//删除第n个元素 bool delElement(string elementDetailType,string elementDetail);//通过某个元素细节找到元素,把这个元素删除 bool replaceElement(ElemType element , size_t n);//使用一个元素,替换掉第n个元素 bool swapElement(size_t n1 , size_t n2);//把第n1个元素和第n2个元素交换 ElemType* getElement();//得到数组头的指针 ElemType* getElement(size_t n);//得到第n个元素的指针 size_t getLength();//得到存储的元素个数 size_t getMaxSize();//得到顺序表容量 bool showElementDetail();//输出所有的元素细节 bool showElementDetail(size_t n);//输出第n个元素的细节 bool showElementDetail(string elementDetailType,string elementDetail);//通过某个元素细节找到元素,输出元素所有细节 size_t findElement(string elementDetailType,string elementDetail);//通过某个元素细节找到元素位置 static int inputAInt(int min = 0,int max = 9,int defaultValue = -1);//从键盘读取,限制为一个min到max间的整数,非法情况返回defaultValue void startControlLoop();//打开控制界面 ~SeqList();//析构函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值