您的位置:首页 > 编程语言 > C语言/C++

顺序表的基本操作——C++实现

2015-09-06 16:12 477 查看
目前是大四学生,在即将毕业照工作之际,想把数据结构和算法的基础好好学习,巩固下。

用的学习教材是,秦锋主编的《数据结构(C语言版)》。

以下就是我的顺序表实现代码:

<pre name="code" class="cpp">#include<iostream>
#include<malloc.h>
#define MAXSIZE 100//顺序表长度上限
using namespace std;

typedef int DataType;
typedef struct{
DataType data[MAXSIZE];//顺序表的存储结构
int length;//顺序表长度
}SeqList,* PSeqList;

int main(){
/*函数声明*/
void panduan(PSeqList L);
PSeqList Init_SeqList(void);
int Locate_SeqList(PSeqList L,DataType x);
void Insert_SeqList(PSeqList L,int i,DataType x);
void Delete_SeqList(PSeqList L,int i);
void Show_SeqList(PSeqList L);

PSeqList L=Init_SeqList();//创建顺序表

int x;
cout<<"\n\n输入需要查找的数值x:";
cin>>x;
cout<<x<<"在顺序表中是第"<<Locate_SeqList(L,x)<<"个元素!";

int y,t;
cout<<"\n\n输入需要插入的位置t及其数值y:";
cin>>t>>y;
Insert_SeqList(L,t,y);
cout<<"插入后的顺序表为:";
Show_SeqList(L);

int z;
cout<<"\n\n输入需要删除的数值的位置z:";
cin>>z;
Delete_SeqList(L,z);
cout<<"删除后的顺序表为:";
Show_SeqList(L);

return 0;
}

/*判断顺序表是否存在和溢出*/
void panduan(PSeqList L){
if(!L){
cout<<"表不存在!";
return;
}
if(L->length>=MAXSIZE){
cout<<"表溢出!";
return;
}
}

/*创建顺序表*/
PSeqList Init_SeqList(void){
PSeqList L;
L=(PSeqList)malloc(sizeof(SeqList));
cout<<"输入顺序表的表长(不超过100):";
cin>>L->length;

cout<<"输入顺序表的元素:";
for(int i=0;i<L->length;i++){
cin>>L->data[i];
}

return L;
}

/*查找顺序表中 值为x的元素 对应的 下标*/
int Locate_SeqList(PSeqList L,DataType x){
int i=0;
while(i<L->length && L->data[i]!=x)
i++;

if(i<L->length)
return i+1;
else
return 0;
}

/*在第i个元素前插入值x*/
void Insert_SeqList(PSeqList L,int i,DataType x){
panduan(L);
if(i<1 || i>L->length+1){
cout<<"插入位置不合法!";
return;
}
for(int j=L->length-1;j>=(i-1);j--){
L->data[j+1]=L->data[j];
}
L->data[i-1]=x;
L->length++;
}

/*删除顺序表中第i个元素*/
void Delete_SeqList(PSeqList L,int i){
panduan(L);
if(i<1 || i>L->length){
cout<<"删除位置不合法!";
return;
}
for(int j=(i-1);j<L->length;j++){
L->data[j]=L->data[j+1];
}
L->length--;
}

/*输出顺序表*/
void Show_SeqList(PSeqList L){
for(int i=0;i<L->length;i++){
cout<<L->data[i]<<" ";
}
}


个人也算是初学者,难免会有错误之处,还请各位不吝赐教,共同学习,感激不尽!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 代码 算法