求解答谢谢
贴出代码而不是截图。发了帖子你难道自己不看下。这么小的字根本看不清。
什么是线性表?
定义:由n(n>=0)个数据类型相同的数据元素组成的有限序列。
特点是:在数据元素的非空有限集合中,除第一个元素无直接前驱,最后一个元素无直接后继外,集合中其余每个元素均有唯一的直接前驱和直接后继。
什么是顺序表,在这里回答一下。
顺序表就是线性表的顺序存储,其特点是:物理顺序与逻辑顺序是相同的,关系线性化,结点顺序存。
线性表顺序存储的表示
#define......
答案就在这里:数据结构的顺序表及其操作
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
#include
#include //rand函数的头文件
#include //assert函数的头文件
#define LIST_INIT_SIZE 100 //线性表初始空间的分配量
#define LISTINCREMENT 10 //线性表存储空间的增量
typedef int Elemtype;
const int n=10;
int i;
typedef struct
{
int listsize; //存储表的允许长度
int length; //存储表的实际长度
Elemtype *data; //存储数组的初地址
}SqList;
//构造一个空的线性表L
void InitList(SqList &L)
{
L.data=new Elemtype(LIST_INIT_SIZE); //分配L的存储空间
assert(L.data!=0); //存储分配失败则终止
L.length=0; //空表长度为0
L.listsize=LIST_INIT_SIZE; //初始存储容量
cout<<"存储分配成功"< return;
}
//在第i个位置插入元素e
void Insert(SqList &L,int i,Elemtype e)
{
L.length=n;
Elemtype *newbase;
cout cin>>i;
if(i>L.length+1||i if(L.length>=L.listsize)
{
newbase=new Elemtype(L.listsize+LISTINCREMENT);
assert(newbase!=0); //存储分配失败则终止
for(int j=0;j<n;j++)
newbase[j-1]=L.data[j-1]; //把现有元素搬移到新的存储空间
L.data=newbase; //修改顺序表的基址
L.listsize+=LISTINCREMENT; //修改存储容量
}
for(int j=n-1;j>i;j--)
L.data[j+1]=L.data[j]; //从顺序表的最后一个元素开始,知道第i个元素为止,依次向后移一位
L.data[i-1]=e; //将第i个元素的值插入到顺序表中
++L.length; //表长增1
for(i=0;i<n;i++)
cout<<L.data[i]<<' ';
cout<<endl;
return;
}
void main()
{
SqList L;
InitList(L);
for(i=0;i<n;i++)
L.data[i]=rand()%100;
for(i=0;i<n;i++)
cout<<L.data[i]<<' ';
cout<<endl; //给线性表随机赋值
Insert(L,i,4);
cout<<endl;
}