您的位置:首页 > 其它

线性表--顺序储存结构

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







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



////////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;



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