2 qq 33428266 qq_33428266 于 2016.04.11 13:06 提问

帮我看看下面的程序哪里出错了,刚从数据结构学的单链表,运行不了

就简单的取值 插入 删除 合并
#include
#include
#include
typedef struct LNode
{
int num;
struct LNode *next;
}LNode,*LinkList;

void InitiList(LinkList L)
{
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
}
void LocateElem(LinkList L)
{
int e;
LNode *p;
p=L->next;
printf("\n\t\t输入要查找的数据:");
scanf("%d",&e);
while(p&&p->num!=e)
p=p->next;
p=p->next;
printf("%d",p->num);
}
void ListInsert(LinkList L)
{

int i;
int e;
LNode *p=L,*s;
int j=0;
printf("\n\t\t输入要插入的结点:");
scanf("%d",&i);
getchar();
printf("\n\t\t输入要插入的数据:");
scanf("%d",&e);
while(p&&(j<i-1))
{
    p=p->next;
    ++j;
}
if(!p||j<i-1)
    exit(0);
s=(LinkList)malloc(sizeof(LNode));
s->num=e;

s->next=p->next;
p->next=s;
}
void ListDelete(LinkList L)
{
int i;
LNode *p,*q;
int j=0;
printf("\n\t\t输入要删除的结点位置:");
scanf("%d",&i);
while((p->next)&&(j {
p=p->next;
++j;
}
if(!(p->next)||j exit(0);
q=p->next;
p->next=q->next;
free(q);
}
void shuru(LinkList L)
oid shuru(LinkList L)
{
LNode *p1,*p2;
int n;
scanf("%d",&n);
while(scanf("%d",&n)!=EOF);
{
p1=(LinkList)malloc(sizeof(LNode));
p1->num=n;
p1->next=NULL;
if(L->next==NULL)
L->next=p1;
else
p2->next=p1;
p2=p1;
scanf("%d",&n);
printf("AAAAAAA\n");
}
}
void hebing(LinkList L,LinkList T)
{
LinkList LC;
LNode *pa,*pb,*pc;

pa=L->next;
pb=T->next;
LC=L;
pc=LC;
while(pa&&pb)
{
if(pa->num<=pb->num)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(T);
}
int main()
{
int n,t;
LinkList A;
LinkList B;
LinkList L;
LinkList T;
InitiList(A);
InitiList(B);
shuru(A);
shuru(B);
printf("\n\t\t选择需要操作的链表:1.A 其它.B");
scanf("%d",&t);
if(t=1)
{L=A;
T=B;}
else
L=B;
T=A;
printf("\n\t\t操作选择:");
printf("\n\t\t1:查找");
printf("\n\t\t2:插入");
printf("\n\t\t3:删除");
printf("\n\t\t4:合并");
printf("\n\t\t5:退出");
scanf("%d",&n);
for(;;)
{
switch(n)
{
case 1:LocateElem(L);
case 2:ListInsert(L);
case 3:ListDelete(L);
case 4:hebing(L,T);
case 5:exit(0);

 }
 }
 free(A);
 free(B);
 return 0;

}

3个回答

lbcab
lbcab   2016.04.11 13:33

你确定你的代码能编译成功?

void shuru(LinkList L)
oid shuru(LinkList L)
这是什么意思?

while((p->next)&&(j { //你不觉得while缺点啥?
p=p->next;
++j;
}
if(!(p->next)||j exit(0); //if是不是缺点啥?
还有 case 下面是不是应该加break?

...............

ajfly0622
ajfly0622   2016.04.11 14:08

这个问题有点大,这不是数据结构没学好,这是C语言没学好啊!楼上说的挺好,语法的问题吧!

qq423399099
qq423399099   Ds   Rxr 2016.04.11 14:49

楼主你重新发一下代码,放在代码标签里,直接copy上来的话有的地方不太对的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
众数的程序(使用到快速排序)
以下这个众数的程序,帮忙看下哪里出错了?
文件内容
帮我看看哪里错了,为什么不能连接数据库呢?一运行就出错
串口通讯
帮我看看错在哪里
SPIN控件的使用问题
我的程序哪里错了为什么不能调节,,不知道哪里出错了,请大家看看,要写20字真是烦人
采用Hook钩子注入DLL.
这里采用了HOOk钩子注入DLL,不过出现了错误,大佬帮忙查看下哪里出错了。
java代码编码出现问题
JAVA的中文字符乱码问题一直很让人头疼。特别是在WEB应用中。网上的分析文章和解决方案都很多,但总是针对某些特定情况的。很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经掌握了对付这些字符乱码怪兽的诀窍。可当过段时间,换了个应用或换了个环境,又会碰到那讨厌的火 星文,并再次无所适从。于是下决心好好整理一下中文字符编码问题,以方便自己记忆,也为其他程序员兄弟们提供一份参
编程中经常错的地方(如果你的程序报错,却找不到,来这里看看)
1,      struct 结构体和union联合体,一定要加‘;’ 例: struct node{ int num }; ,2,   如果使用if和while时,注意: if(a=4); { printf("大家好\n"); } while(a=4); { printf("大家好\n"); } 上面两个语法没问题,但逻辑有问题,if 和wh
这段代码哪里出错了,access数据库里面更新不了数据
<br /> long num = long.Parse(Global.COLUMN_ID.ToString());<br />            OleDbConnection connection = new OleDbConnection(CONN_ACCESS.ConnString);<br />            OleDbCommand command = new OleDbCommand(string.Concat(new object[] { "update Web_URL SET
android 项目不能在手机上运行,(解析包出错)(bin文件红叉)
bin文件红叉(android项目无法在手机上运行)
c出错解决办法
系统集成的出错解决办法,出错了看下马上就能解决。