注册 登录
编程论坛 C++教室

链表的创建与插入的请教

heliujin 发布于 2007-03-25 15:48, 1405 次点击

不知道为什么运行不了 而且调试没有错误 就是一运行就弹出一个对话框 可以选择调试和关闭 程序如下:

如果有底级错误 请大家指出来 如果是逻辑错误更希望大家指教了 谢谢大家了 谢谢高手了
#include"iostream.h"

const int sizeincream=10;

struct lb
{
int size;

char *p;
};

lb lianbiao;

void create()
{

int s;

cout<<"输入链表的个数:"<<endl;

cin>>s;

lianbiao.size=s;

lianbiao.p=new char[100];

for(int i=1;i<=s;i++)
{
char c;

cout<<"输入第"<<i<<"个元素:";

cin>>c;

lianbiao.p[i-1]=c;

cout<<endl;
}
}

void insertlianbiao(lb& lianbiao)
{
int w;

char c;

cout<<"请输入要插入的位置:";

cin>>w;

cout<<"请输入要插入的元素:";

cin>>c;

if(lianbiao.size+1>=100)
{
cout<<"链表已满!";

cout<<endl;

}

else if(w==lianbiao.size)
{
lianbiao.p[w]=c;
lianbiao.size=lianbiao.size+1;
}

else
{
for(int i=w-1;i<lianbiao.size;i++)
{
lianbiao.p[i+1]=lianbiao.p[i];
lianbiao.p[i]=c;
}
lianbiao.size=lianbiao.size+1;
}
}

void showlianbiao()
{
cout<<"您所建立的链表如下:"<<endl;

for(int j=1;j<=lianbiao.size;j++)
{
cout<<lianbiao.p[j-1];
}
cout<<endl;
}

int main()
{
create();
insertlianbiao(lianbiao);
showlianbiao();
delete []lianbiao.p;
return 0;
}

13 回复
#2
heliujin2007-03-25 16:58
没人回复?
自己顶一下
#3
yuyunliuhen2007-03-25 17:47
编译运行都正常,只是在输入上会有些问题,比如说提示要输入链表个数,那么就得输入INT整数才会正常,若输入字符,就会出现调试错误,若输入小数,就会把小数点及后面的数字当作链表的元素.....可以在这方面完善一下
#4
heliujin2007-03-25 18:41

我是按照正常的途径 要输入个数 我只输入的INT型的数,都是按照正常的走的,为什么就是调试有错误呢
大家帮帮忙吧  谢谢了

#5
yuyunliuhen2007-03-25 20:14
输入是整数,也会出错的么?
应该不会出现你说的那个情况吧

[此贴子已经被作者于2007-3-25 20:45:31编辑过]

#6
heliujin2007-03-25 21:03
大家帮我看看吧  小弟刚接触不久  很相信这个论坛  也深深的爱的这个论坛的每一位朋友  我相信大家 才提出这个问题的 大家帮帮我吧 急啊 谢谢了
#7
heliujin2007-03-26 08:33
大家帮我看看吧  小弟刚接触不久  很相信这个论坛  也深深的爱的这个论坛的每一位朋友  我相信大家 才提出这个问题的 大家帮帮我吧 急啊 谢谢了
#8
heliujin2007-03-26 08:33
#9
天下第二刀2007-03-26 17:37

#include<iostream.h>

const int sizeincream=10;

struct lb
{
int size;

char *p;
};

lb lianbiao;

void create()
{

int s;

cout<<"输入链表的个数:"<<endl;

cin>>s;

lianbiao.size=s;

lianbiao.p=new char[100];

for(int i=1;i<=s;i++)
{
char c;

cout<<"输入第"<<i<<"个元素:";

cin>>c;

lianbiao.p[i-1]=c;


}
}
//////////////////////////////////////////////

void insertlianbiao(lb& lianbiao)
{
int w;

char c;

cout<<"请输入要插入的位置:";

cin>>w;

cout<<"请输入要插入的元素:";

cin>>c;

if(lianbiao.size+1>=100)

cout<<"链表已满!"<<endl;

else if(w==lianbiao.size)
{
lianbiao.p[w]=c;
lianbiao.size+=1;
}

else

for(int i=lianbiao.size ;i>=w-1;i--)
lianbiao.p[i+1]=lianbiao.p[i];

lianbiao.p[w-1]=c;

lianbiao.size=lianbiao.size+1;

}

void showlianbiao()
{
cout<<"您所建立的链表如下:"<<endl;

for(int j=1;j<=lianbiao.size;j++)
{
cout<<lianbiao.p[j-1];
}
cout<<endl;
}

int main()
{
create();
insertlianbiao(lianbiao);
showlianbiao();
delete []lianbiao.p;
return 0;
}

#10
天下第二刀2007-03-26 17:38
帮你改了一个,你看看吧
#11
heliujin2007-03-26 17:59
谢谢楼上的高手了 太谢谢了 是我马虎大意了 i的值的变化没考虑 以后我会注意的
#12
天下第二刀2007-03-26 18:02
这么快, 看来你天在在论坛上呀
#13
hertz2007-04-14 16:52
回复:(heliujin)链表的创建与插入的请教

每次插入后,都要是size增加1,size++;如果插入不成功,则size 保持不变。

#14
tobyliying2007-06-25 15:43
你这个不是链表呀。
1