赞
踩
线性结构的物理存储主要有两种方式:顺序存储和链式存储。线性结构中一个数据元素是没有什么意义的,所有的数据元素构成一个整体才有意义。为了对这个整体有一个大方为的管理,所以,我们应该建立关于这个整体的头,数据元素的类型另说。以后写关于数据结构的代码都是基于C++这门语言来实现。
线性结构的顺序存储方式的代码(C++的内容略)
//加载的头文件
# include<iostream.h>
# include<stdlib.h>
//宏的定义
# define MAXSIZE 10
# define ADD 10
//表头数据类型
typedef struct
{
int *List; //用于存放数组的首地址
int curlen;//当前这个表(数组)存了多少个数据了
int maxsize;//这个表最大可以存放的数据个数
}ArrList;
//初始化一个线性表
void IniList(ArrList &L)
{
L.List=new int[MAXSIZE]; //这个表的list存放着一个一位数组的首地址,用于存放数据
if(!L.List)
{
cout<<"线性表的初始化出现错误!\n";
return; //if 语句判断上一条语句是否被正确的执行了
}
L.curlen=0; //这个表当前一个数据也没有存
L.maxsize=MAXSIZE; //这个表最大可以存放10个数据
}
//初始连续输入n个元素
void Creatlist(ArrList &L,int n)
{
int i;
int e;
for(i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"数:";
cin>>e;
L.List[i]=e;
}
L.curlen=n;
cout<<"您的操作已完成!\n";
}
//显示表中的元素
void Display(ArrList L)
{
int i;
for(i=0;i<L.curlen;i++)
{
if((i+1)%5==0 )
cout<<"\n";
cout<<"L["<<i<<"]"<<"="<<L.List[i]<<" ";
}
cout<<"\n您的操作已完成!\n";
}
//插入一个元素
void Inlist(ArrList &L,int i,int e)
{
if(i<1||i>L.curlen+1)
{
cout<<"您的插入位置不正确!\n";
return;
}
if(L.curlen>=L.maxsize)//如果因为表不能插入数据时,那么就扩大一位数组的大小
{
int * relist;
int q;
relist=new int[L.maxsize+ADD];
for(q=0;q<L.maxsize;q++)
relist[q]=L.List[q];
free (L.List);
L.List=relist;
}
int j;
for(j=L.curlen;j>=i;j--)//使要插入数据的位置的原来数据向后动一个单位
{
L.List[j]=L.List[j-1];
}
L.List[i-1]=e;
L.curlen++;
cout<<"您的操作已经成功完成!";
}
//删除一个元素
void Deletelist(ArrList &L,int i)
{
if((i<1)||(i>L.curlen))
{
cout<<"您输入到位置错误!\n";
return ;
}
for(++i;i<=L.curlen;++i)
L.List[i-1]=L.List[i];
--L.curlen;
cout<<"您的操作已完成!\n";
}
void main()
{
ArrList a;
int m;
int n;
IniList(a);
int option;
option=-1;
while(option!=0)
{
cout<<"\n\n\n\n";
cout<<" 菜单\n\n";
cout<<" 0:退出\n";
cout<<" 1:初始连续输入元素\n";
cout<<" 2:插入元素\n";
cout<<" 3:删除元素\n";
cout<<" 4:显示线性表中的元素\n\n\n\n";
cout<<"请选择您的操作:";
cin>>option;
switch (option)
{
case 0 :
option=0;
break;
case 1 :
cout<<"请输入连续输入数据的个数:";
cin>>n;
Creatlist(a,n);
break;
case 2 :
cout<<"请输入插入元素的位置:";
cin>>n;
cout<<"请输入插入元素的值:";
cin>>m;
Inlist(a,n,m);
break;
case 3 :
cout<<"请输入删除元素的位置:";
cin>>n;
Deletelist(a,n);
break;
case 4 :
Display(a);
break;
default :
cout<<"请输入正确的选项";
break;
}
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。