您的位置:首页 > 其它

线性表--顺序储存结构

2016-01-26 00:00 246 查看
我意识到数据结构的重要性了,决定把把各种类型写一遍,熟练一下,我觉得对这些应该达到了如指掌的地步,才算可以...

////////线性表 顺序储存

////////code by Apan

#include<iostream>

using namespace std;

////////定义线性表

#define MAXSIZE 1000

typedef int DATATYPE;

typedef struct

{

DATATYPE data[MAXSIZE];

int last;

}Seqlist;

////////创建线性表

void Creat_Seqlist(Seqlist* L)

{

cout<<"请输入线性表的长度: ";//////输入线性表长度

cin>>L->last;

for(int i=0;i<L->last;++i)

{

cout<<"输入第"<<i+1<<"个数据: ";

cin>>L->data[i];

}

}

////////插入操作

void Insert_Seqlist(Seqlist* L ,int i,DATATYPE x)

{

///////检查线性表是否已满

if(L->last==MAXSIZE)

{

cout<<"线性表已满,不能插入!" ;

return ;

}
//////检查插入位置的正确性

if(i<0||i>L->last)

{

cout<<"插入位置错误!";

return ;

}

//////插入数据

else

{

for(int j=L->last-1;j>=i-1;j--)

L->data[j+1]=L->data[j];

L->data[i-1]=x;

L->last++;

}

}

//////删除操作

void Del_Seqlist(Seqlist* L ,int i)

{

/////检查是否为空栈

if(L->last<0)

{

cout<<"线性表为空!";

return ;

}

/////检查删除位置

if(i<1||i>L->last)

{

cout<<"无法找到!";

return ;

}

/////删除元素

else

{

for(int j=i-1;j<L->last-1;++j)

L->data[j]=L->data[j+1];

L->last--;

}

}

//////按值查找

void Location_Seqlist(Seqlist* L,DATATYPE x)

{

int i=0;

while(i<L->last&&L->data[i]!=x)

i++;

if(i==L->last)

cout<<"不存在该值!";

else

cout<<"元素 "<<x<<" 是第 "<<i+1<<" 个元素"<<endl;

}
/////输出线性表

void Out_Seqlist(Seqlist L)

{

cout<<"/n线性表如下:/n";

for(int i=0;i<L.last;++i)

cout<<L.data[i]<<" ";

cout<<endl;

}

////////主函数

int main()

{

//////建立线性表

cout<<"建立线性表 /n";

Seqlist seq;

Creat_Seqlist(&seq);

Out_Seqlist(seq);

//////插入元素

cout<<"/n/n/n插入元素/n"

<<"请输入插入的位置:";

int i;

DATATYPE x;

cin>>i;

cout<<"/n请输入要插入的元素:";

cin>>x;

Insert_Seqlist(&seq,i,x);

Out_Seqlist(seq);

///////删除元素

cout<<"/n/n/n删除元素/n删除第几个元素:";

cin>>i;

Del_Seqlist(&seq,i);

Out_Seqlist(seq);

/////按值查找

cout<<"/n/n/n按值查找/n请输入要查找的值: /n";

cin>>x;

Location_Seqlist(&seq ,x);

Out_Seqlist(seq);

cout<<"/n/n/n谢谢参与,再见!"<<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: