| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 966 人关注过本帖
标题:请教一个关于顺序表插入的问题
只看楼主 加入收藏
woshixinshou
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-18
收藏
 问题点数:0 回复次数:12 
请教一个关于顺序表插入的问题

#include <iostream.h>
#include <stdio.h>
#define MAXNUM 20
int D;
int *creat_list(){//顺序表的创建//
int i ,ch,*list;
list=new int[MAXNUM];
for(i=0;i<MAXNUM;i++)
list[i]=0;
cout<<"请输入元素,最多18个,以-1结束"<<endl;
i=0;
while (ch!=-1)
{
cin>>ch;
list[i]=ch;
i++;
};
D=i;
return list;
}
void display_list(int *list){//顺序表的展开//
cout<<"输出"<<endl;
int i=0;
while(list[i]!=-1)
cout<<list[i++];
cout<<endl;
}
int *insertelement(int locat,int ielement,int *list){//顺序表的插入//
for (int i=D+1; i>locat;i--)
list[i]=list[i-1];
list[locat]=ielement;

return list;
}
void main(){
int *p,LOCAT,IELEMENT;
p=creat_list();
display_list(p);
cout<<"请输入要插入元素及其位置"<<endl;
cin>>LOCAT;
cin>>IELEMENT;
display_list(insertelement(LOCAT,IELEMENT,p));
}

不知道为什么这个插入函数不起作用,输出的还和原来的一样!
如果知道请务必指点一下,在下感激不尽!

搜索更多相关主题的帖子: 顺序表 int list include 
2006-07-18 14:51
welldone2006
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-1-8
收藏
得分:0 

#include <iostream.h>
#include <stdio.h>
#define MAXNUM 20
int D;
int *creat_list(){//顺序表的创建//
int i ,ch,*list;
list=new int[MAXNUM];
for(i=0;i<MAXNUM;i++)
list[i]=0;
cout<<"请输入元素,最多18个,以-1结束"<<endl;
i=0;
while (ch!=-1)
{
cin>>ch;
list[i]=ch;
i++;
};
D=i;//D=i-1
return list;
}
void display_list(int *list){//顺序表的展开//
cout<<"输出"<<endl;
int i=0;
while(list[i]!=-1)
cout<<list[i++];
cout<<endl;
}
int *insertelement(int locat,int ielement,int *list){//顺序表的插入//
//list[D+1]=-1;
for (int i=D; i>=locat;i--)//注意

list[i]=list[i-1];
list[locat-1]=ielement;

return list;
}
void main(){
int *p,LOCAT,IELEMENT;
p=creat_list();
display_list(p);
cout<<"请输入要插入元素及其位置"<<endl;
cin>>LOCAT;
cin>>IELEMENT;
display_list(insertelement(LOCAT,IELEMENT,p));
}


2006-07-18 15:42
woshixinshou
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-18
收藏
得分:0 
上面这位大哥,谢谢你的回帖!我照你这样写了,还是不行,是不是我那个返回的指针有怎么问题?
2006-07-18 16:12
welldone2006
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-1-8
收藏
得分:0 

不可能,我运行了

有结果,不知道怎么上传图片

[此贴子已经被作者于2006-7-18 16:21:09编辑过]


2006-07-18 16:19
woshixinshou
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-18
收藏
得分:0 

可以插入吗?我还是不行!我晕到

2006-07-18 16:22
welldone2006
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-1-8
收藏
得分:0 
贴个完整的:
#include <iostream.h>
#include <stdio.h>
#define MAXNUM 20
int D;
int *creat_list(){//顺序表的创建
int i ,ch,*list;
list=new int[MAXNUM];
for(i=0;i<MAXNUM;i++)
list[i]=0;
cout<<"请输入元素,最多18个,以-1结束"<<endl;
i=0;
while (ch!=-1)
{
cin>>ch;
list[i]=ch;
i++;
};
D=i-1;
cout<<"D="<<D;
return list;
}
void display_list(int *list){//顺序表的展开//
cout<<"输出"<<endl;
int i=0;
while(list[i]!=-1)
cout<<list[i++];
cout<<endl;
}
int *insertelement(int locat,int ielement,int *list){//顺序表的插入//

list[D+1]=-1;
for (int i=D; i>=locat;i--)
{list[i]=list[i-1];
cout<<list[i]<<endl;}
list[locat-1]=ielement;
return list;
}
void main(){
int *p,LOCAT,IELEMENT;
p=creat_list();
display_list(p);
cout<<"请输入要插入元素及其位置"<<endl;
cin>>LOCAT;
cin>>IELEMENT;
display_list(insertelement(LOCAT,IELEMENT,p));
}

2006-07-18 16:26
welldone2006
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-1-8
收藏
得分:0 
运行结果:
请输入元素,最多18个,以-1结束
1 2 3 4 -1

D=4输出
1234

请输入要插入元素及其位置

2 4
4 //为调试程序的输出
3 //为调试程序的输出
2 //为调试程序的输出
输出:
14234

[此贴子已经被作者于2006-7-18 16:35:54编辑过]


2006-07-18 16:34
woshixinshou
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-18
收藏
得分:0 

结果不对啊大哥!结果:


请输入元素,最多18个,以-1结素
123456-1
D=1输出
123456
请输入要差入元素及其位置
2
2
输出
1234562

结果不对啊!

2006-07-18 16:41
welldone2006
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-1-8
收藏
得分:0 
输入的时候中间应该有空格!!!!!

2006-07-18 16:43
woshixinshou
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-18
收藏
得分:0 
哦,我知道错在哪里了,哈哈!非常感谢这位大哥!
2006-07-18 16:47
快速回复:请教一个关于顺序表插入的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025131 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved