qq_33428266 2016-04-11 05:06 采纳率: 0%
浏览 1339

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

就简单的取值 插入 删除 合并
#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 2016-04-11 05: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?

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

    评论

报告相同问题?

悬赏问题

  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问