中易网

设计一个包含初始化 求数据元素个数 插入删除和取数据元素的有序顺序表

答案:2  悬赏:30  
解决时间 2021-01-22 18:23
设计一个包含初始化 求数据元素个数 插入删除和取数据元素的有序顺序表
最佳答案
#include
#define maxsize 20template
class Seqlist
{
private:
T a[maxsize];
int len;
public:
void init(); //初始化
int length();//求长度
void insert(Seqlist &l,int i,T x); //插入
void deleted(Seqlist &l,int i);//删除
void print();//输出
void create(Seqlist &L,T e);//创建
};template
void Seqlist::init()
{
len=0;
}template
int Seqlist::length()
{
return len;
}template
void Seqlist::insert(Seqlist &l,int i,T x)
{
if(l.len>maxsize)
cout<<"overflow"< else if (i<1||i>l.len+1)
cout<<"position is not correct!"< else
{
for(int j=l.len;j>=i;j--)
l.a[j+1]=l.a[j];
l.a[i]=x;
l.len++;
}
}template
void Seqlist::deleted(Seqlist &l,int i)
{ if (i<1||i>l.len)
cout<<"position is not correct!"< else
{
for(int j=i+1;j<=l.len;j++)
l.a[j-1]=l.a[j];
l.len--;
}
}template
void Seqlist::print()
{
for(int i=1;i<=len;i++)
cout< cout<}template
void Seqlist::create(Seqlist &L,T e)
{
cout<<"输入数据,当输入-1时结束:"< cin>>e;
while(e!=-1)
{
L.insert(L,L.length()+1,e);
cin>>e;
}
}void main()
{
SeqlistL;
int e,i;
L.init();
L.create(L,e);

cout<<"输出顺序表:"< L.print();
cout<<"输入要删除元素的位置:";
cin>>i;
L.deleted(L,i);
cout<<"输出删除后的顺序表:"< L.print();
}
全部回答
typedef struct { DataType list[Maxsize]; int size;}SeqList; void ListInitiate(SeqList *L){ L->size = 0;} int ListLength(SeqList L){ return L.size;} int ListInsert(SeqList *L, int i, DataType x){ int j; if(L->size >= Maxsize) { printf("顺序表已满无法插入! \n"); return 0; } else if(i < 0 || i > L->size ) { printf("参数i不合法! \n"); return 0; } else { for(j = L->size; j > i; j--) L->list[j] = L->list[j-1]; L->list[i] = x; L->size ++; return 1; }} int ListDelete(SeqList *L, int i, DataType *x){ int j;if(L->size <= 0){ printf("顺序表已空无数据元素可删! \n"); return 0;}else if(i < 0 || i > L->size-1){ printf("参数i不合法"); return 0;}else{ *x = L->list[i]; for(j = i+1; j <= L->size-1; j++) L->list[j-1] = L->list[j]; L->size--; return 1; }} int ListGet(SeqList L, int i,DataType *x){ if(i < 0 || i > L.size-1){ printf("参数i不合法! \n"); return 0;}else{ *x = L.list[i];return 1; }} void SeqListSort(SeqList *L){ int i ,j ,temp; for(j = 0; j < L->size-1; j++) for(i = 0; i < L->size-1-j; i++) if(L->list[i] > L->list[i+1]) { temp = L->list[i]; L->list[i] = L->list[i+1]; L->list[i+1] = temp; }} int SeqListInsert(SeqList *L, int m){ int p = 0, j, i; if(L->size >= Maxsize) { printf("顺序表已满无法插入! \n"); return 0; } for(i = 0; i < L->size; i++) if(m > L->list[i]) p++; for(j = L->size; j > p; j--) L->list[j] = L->list[j-1]; L->list[p] = m; L->size++; return 1;} void main() { SeqList myList; int i , n , x ,m; ListInitiate(&myList); printf("请输入原始数据元素个数:"); scanf("%d", &n); printf("请输入原始数据元素:\n"); for(i = 0; i < n; i++) {scanf("%d", &x); ListInsert(&myList, i, x) ;} printf("\n原始数据元素为:\n"); for(i = 0; i < ListLength(myList); i++) if(ListGet(myList, i, &x))printf("%d ", x); printf("\n正在对该顺序表递增排序......,"); SeqListSort(&myList); printf("\n排序后的数据元素为:"); for(i = 0; i < ListLength(myList); i++) if(ListGet(myList, i, &x))printf("%d ", x); printf("\n数据元素个数为: %d\n", ListLength(myList)); printf("\n请输入要插入的数据元素:"); scanf("%d", &m); SeqListInsert(&myList, m); printf("\n插入新的数据元素之后有序顺序表为:\n"); for(i = 0; i < ListLength(myList); i++) if(ListGet(myList, i, &x))printf("%d ", x); printf("\n此时数据元素个数为: %d\n", ListLength(myList)); printf("\n请输入要删除的元素位置(0~%d):", n); scanf("%d", &n); ListDelete(&myList, n, &x); printf("\n删除第%d个元素后的顺序表为:\n", n); for(i = 0; i < ListLength(myList); i++) if(ListGet(myList, i, &x))printf("%d ", x); printf("\n此时的数据个数为: %d\n", ListLength(myList)); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何辨别手提蓄电灯好坏
英语26个字母怎么写好看?
孩子得了多形性红斑不见好
耽美小说,主攻文,受之一为攻封了仙界等攻回
富豪汽车维修中心地址在什么地方,我要处理点
从昆明西部客运站到昆明五华区正义坊老街钱王
铃木K8大R摩托车三种模式有什么作用?
财务报表怎么转换成excel格式
验房如何测量商品房面积?验房要查看什么?
用支付宝金账户进携程返利多,还是用米折网多
烦扰什么烦扰除了心跳没什么大不了歌词
255/45R18的轮胎米其林PSS和倍耐力PO红飙
用韩杨的名字搜个微信网名
钻戒什么品牌好?怎么选钻戒?
汉族传统乐器有哪些?
推荐资讯
小营建材城有陶瓷洗衣槽卖吗?
四川电信宽带包了分钟数的,用完了多少一小时
搞好人际关系有什么好处
怎么才能淡化雀斑
如何紧缩毛孔
铬酸根离子在水溶液中存在平衡吗
急需要1000块钱,怎么办?
有没有一个可以观测星星的软件
被家人长辈敲开房门锁,如何维护个人合法权益
怀孕初期乳头痒,怎么了?
有一种笔写后干了自动消失是怎么回事
如果在s7程序中,把很多状态压缩在一个字里边
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?