创建一个顺序表
发布网友
发布时间:2022-05-17 21:45
我来回答
共3个回答
热心网友
时间:2023-11-09 20:45
学c语言很久了,可以用c++写不?如果可以的话,就看下面的.要不你自己改写成C语言,改写不是很难的.下面的程序运行的起,在我的vc里面,注意输入格式.
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct {//表的存储结构
int *elem;
int length;
int listsize;
}sqlist;
int initlist(sqlist &l)//建立空表
{
l.elem =(int *)malloc(100*sizeof(int));
l.length =0;
l.listsize =100;
return 1;
}
int listinsert(sqlist &l,int i,int e)//插入元素,在i之前插入
{
int j=0;
for(j=l.length ;j>=i;j--)
l.elem [j+1]=l.elem [j];
l.elem [i]=e;
l.length ++;
return 1;
}
int listdelete(sqlist &l,int i,int &e)//删除指定的元素
{
int j=0;
e=l.elem [i];
for(j=i;j<=l.length ;j++)
l.elem [j]=l.elem [j+1];
l.length --;
return 1;
}
int creatlist(sqlist &l,int n)//对空链表进行初始化
{
int i,e;
for(i=1;i<=n;i++)
{
cin>>e;
listinsert(l,i,e);
}
return 1;
}
int getelem(sqlist l,int i,int &e)//输入出表中元素
{
e=l.elem [i];
return 1;
}
void main()
{
int e,i;
sqlist l;
initlist(l);;
cout<<"请输入请输入l的元素:";
creatlist(l,10);//建立一个含有10个的线性表,多少你自己可以定
cout<<"你所构造的表"<<endl;
for(i=1;i<=l.length ;i++)
{
getelem(l,i,e);
cout<<e<<" ";
}
cout<<endl<<"请输入要插入元素的位置,以及该元素"<<endl;
cin>>i>>e;
listinsert(l,i,e);
cout<<"插入之后的表:"<<endl;
for(i=1;i<=l.length ;i++)
{
getelem(l,i,e);
cout<<e<<" ";
}
cout<<"请输入要删除元素的位置i:"<<endl;
cin>>i;
listdelete(l,i,e);
cout<<"删除之后的表"<<endl;
for(i=1;i<=l.length ;i++)
{
getelem(l,i,e);
cout<<e<<" ";
}
}
热心网友
时间:2023-11-09 20:45
这个顺序表是一个数组还是一个队列?
这个应该需要按照需求来做,
具体的做法可以参看c语言书籍或数据结构数据来做,
仔细点,不难的,有问题再来一起交流,
呵呵,希望能有帮助,^_^
热心网友
时间:2023-11-09 20:46
什么意思? 没明白