永发信息网

数据结构的具体实现(在线等)

答案:2  悬赏:80  手机版
解决时间 2021-06-01 04:39

#include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 20

typedef struct{
int lenght;
int listsize;
int *elem;


}SqList;
int InitList_Sq(SqList &L){
L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem)
exit(1);
L.lenght=0;
L.listsize=LIST_INIT_SIZE;
return 1;

}
int addElem(SqList &L,int elem){
L.elem[L.lenght]=elem;
L.lenght++;
return 1;
}
int ListInsert_Sq(SqList &L,int i,int e)
{
int *newbase,*p,*q;
if(i<1||i>L.lenght+1) return 0;
if(L.lenght>=L.listsize)
{
newbase=(int *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));
if(!newbase)
exit(0);
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
q=&(L.elem[i-1]);
for(p=&(L.elem[L.lenght-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++L.lenght;
return 1;
}
int ListDelete_Sq(SqList &L,int i,int e)
{ int *p,*q;
if((i<1)||(i>L.lenght))
return 0;
p=&(L.elem[i-1]);
e=*p;
q=L.elem+L.lenght-1;
for(++p;p<=q;p++)
*(p-1)=*p;
--L.lenght;
return 1;
}
int Show(SqList L){
for(int i=0;i<L.lenght;i++){
printf("%d\n",L.elem[i]);}
return 1;
}
这是线性存储的相关功能,如创建,添加,删除,显示各元素等,现在问题是

就差键盘输入而具体实现了,可是我也黔驴技穷了!!帮我解答成功者,给20分!!!

最佳答案
void main()
{
printf("初始化线性表....\r\n");
printf("----------------------------------\r\n");
printf("| 1.增加元素; |\r\n");
printf("| 2.插入元素; |\r\n");
printf("| 3.删除元素; |\r\n");
printf("| 4.显示全部元素; |\r\n");
printf("| 5.退出; |\r\n");
printf("----------------------------------\r\n");
int a=0;
SqList sqlist;
InitList_Sq(sqlist);

while(a!=5)
{
printf("请输入指令:");
scanf("%d",&a);
switch(a)
{
case 1 :{
int add;
printf("请输入要添的加元素:");
scanf("%d",&add);
if(addElem(sqlist,add))
printf("增加成功!\r\n");
else printf("增加失败!\r\n"); ;};break; //增加
case 2 :{
int ins,e;
printf("请输入要删除元素的位置:");
scanf("%d",&ins);
printf("请输入要删除的元素");
scanf("%d",&e);
if(ListInsert_Sq(sqlist,ins,e))
printf("插入成功\n");
else printf("插入失败\n");
};break; //插入
case 3 :{
int del,e;
printf("请输入要删除元素的位置:");
scanf("%d",&del);
printf("请输入要删除的元素");
scanf("%d",&e);
if( ListDelete_Sq(sqlist,del,e))
printf("删除成功\n");
else printf("删除失败\n");
};break; //删除
case 4 :{printf("线性表的全部元素是:\n");Show(sqlist);printf("显示完毕\n");};break; //显示
case 5 :break; //退出
}
}
}
全部回答
你的程序有什么问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
找一部十年前左右的动画片
吸收装修污染的植物
杭州瘦美人小铺的地址
北京理工大学 北京师范大学 北京邮电大学有没
求091229 歌谣大战 fx chu 和ring ding dong
这样做才能在女朋友面前管住自己的嘴?
我想向高人请教一下,我的农牧场出现一个请求
怎样删除屏保
跳水或游泳运动员为什么不穿比基尼???
一个多月没来月经......用测试纸又测到没有怀
加载UI素材
一起来看流星雨中 云海在热气球上给雨荨说咯
“恸”字什么意思?
天龙八部天山第七本书以及各技能价钱…新区…
有QQ2009SP7今年准备出吗?
推荐资讯
分手了他为什么还要打听我的消息?
小说<<麻雀要革命>>全集
8GU盘多少钱???
微积分概念及解法
威尼斯位于哪个国家,威尼斯在哪个国家?
我的P4说明书上说能放RMVB格式文件,但一段时
一头猪以50m/s的速度向前冲,撞上一棵树,结
湖南省武冈市东站一天有几趟车去东莞
你能很快计算出下面各题的结果吗?
爱普生630 清零
大明龙权具体什么时间网通再开新服
悠然水吧地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?