标题:自己写的链表操作,帮检查一下哪错了。。。运行时会崩溃
只看楼主
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
结帖率:95.65%
已结贴  问题点数:1 回复次数:19 
自己写的链表操作,帮检查一下哪错了。。。运行时会崩溃
#include <stdio.h>
#define TRUE 1
#define FLASE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef struct{
    int data;
    int *next;
}LNode,*Linklist;


int GetElem(Linklist L,int i,int e)//Getelem
{
    Linklist p;
    int j;               //
    p=L->next;                     //
    j=1;
    while(p!=NULL&&j<i)            //
    {
        p=p->next;                 //
        ++j;
    }
    if(!p||j>i) return ERROR;     //
    e=p->data;                    //
    return OK;                    //
}//Getelem

int ListInsert(Linklist L,int i,int e)  //ListInsert
{
    Linklist p;int j=0;Linklist s;
    p=L;
   
    while(p!=NULL&&j<i-1)  //GPS i position
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i-1) return ERROR;
    s=(Linklist)malloc(sizeof(LNode));
    s->data=e;s->next=p->next;
    p->next=s;
    return OK;
   
}   //ListInsert

int ListDel(Linklist L,int i)
{
    Linklist p,q;int j=0;
    p=L;
    while(p->next&&j<i-1)
    {
        p=p->next;
        j++;
    }
    if(!(p->next)||j>i-1) return ERROR;
    q=p->next;
    p->next=q->next;
    free(q);
} //ListDel

void CreatLinklist(Linklist L,int n) //CreatLinklist
{
    Linklist p,q;
    int i;                    
    p=L;                                //p 指向 L
    L=(Linklist)malloc(sizeof(LNode));   // 初始化头节点
    L->next=NULL;
    for(i=1;i<=n;i++)                     //创建N个节点,并录入数据
     {
         q=(Linklist)malloc(sizeof(LNode));
         printf("请输入数据\n");
         scanf("%d",&q->data);
        p->next=q;
        p=p->next;
        q->next=NULL;
     }
}  //CreatLinklist

void print(Linklist L)
{
    Linklist p=L;
    p=p->next;
    while(p!=NULL)
    {
        printf("%d ",p->data);
    }
    printf("\n");
}


void MergeList(Linklist La,Linklist Lb,Linklist Lc)
{
    Linklist pa,pb,pc;
    pa=La->next;pb=Lb->next;
    Lc=pc=La;
    while(pa&&pb)
    {
        if(pa->data<=pb->data)
        {
            
   
        pc->next=pa;
        pc=pa;
        pa=pa->next;
       }
       else
       {
           pc->next=pb;
           pc=pb;
           pb=pb->next;
          }
          pc->next=pa?pa:pb;
          free(Lb);
    }
   
    print(Lc);
   
}



int main()
{   
     int num;
     Linklist La,Lb,Lc;
     CreatLinklist(La,5);
     CreatLinklist(Lb,3);
     GetElem(La,3,num);
     printf("La中的第3个数是%d",num);
     ListInsert(Lb,2,2);
     print(Lb);
     MergeList(La,Lb,Lc);
}
搜索更多相关主题的帖子: 检查 include return while 
2011-10-04 17:01
hanucvb
Rank: 2
等 级:论坛游民
帖 子:26
专家分:23
注 册:2011-9-21
得分:0 
新手看不懂,路过!
2011-10-04 17:06
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
得分:0 
大侠哪去了?

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-10-04 17:22
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
得分:0 
help,,,,在线求解

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-10-04 17:25
lansane
Rank: 2
等 级:论坛游民
帖 子:17
专家分:58
注 册:2011-5-19
得分:0 
Linklist p;
    int j;               //
    p=L->next;
P的类型 和L->next的类型?
2011-10-04 17:26
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
得分:0 
回复 5楼 lansane
都是Linklist

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-10-04 17:28
lansane
Rank: 2
等 级:论坛游民
帖 子:17
专家分:58
注 册:2011-5-19
得分:0 
主函数中的La和Lb没初始化 就传递参数
Linklist La,Lb,Lc;
     CreatLinklist(La,5);
     CreatLinklist(Lb,3);
2011-10-04 17:40
lansane
Rank: 2
等 级:论坛游民
帖 子:17
专家分:58
注 册:2011-5-19
得分:0 
typedef struct{
    int data;
    int *next;
}LNode,*Linklist
next你定义的是 int指针
2011-10-04 17:41
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
得分:0 
回复 7楼 lansane
初始化交给CreatLinklist了啊

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-10-04 17:45
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
得分:0 
回复 8楼 lansane
对啊。。。。。我笨啊我

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-10-04 17:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-351577-1-1.html




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

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