标题:单链表的建立,请问哪错了?为什么?
取消只看楼主
境善
Rank: 2
等 级:论坛游民
帖 子:76
专家分:16
注 册:2012-10-29
结帖率:86.21%
已结贴  问题点数:1 回复次数:3 
单链表的建立,请问哪错了?为什么?
#include <stdio.h>
#include <malloc.h>
//数据类型
typedef struct Lnode
{
    int data;
    struct Lnode *next;

}Lnode,*LinkList;
//建立带头结点的线性表(头插法)
void creatList(LinkList L,int n)
{
    int x,i=0;
 Lnode *p;
 L=(LinkList)malloc(sizeof(Lnode));
 L->next=NULL;
 p=(Lnode *)malloc(sizeof(Lnode));
 printf("please enter the number:\n");
 while(p!=NULL&&i<=n){
     
     scanf("%d ",&x);i++;printf("%d \n",i);
     p->data=x;
     p->next=L->next;
     L->next=p;
     p=(Lnode *)malloc(sizeof(Lnode));     
   
 }
}
//删除操作
void DeleteList(LinkList L,int e)
{
    printf("aaa  ");
 Lnode *p,*pre;
 pre=L;
 p=L->next;
 while(p!=NULL){
     if(p->data==e){pre->next=p->next;free(p);p=pre->next;}
     else{
         p=p->next;pre=pre->next;}
 }
}
//打印输出

void Print(LinkList L)
{
    printf("ddd ");
    L=L->next;
    while(L!=NULL){printf("%d ",L->data);L=L->next;}

}

int main()
{
void creatList(LinkList ,int);
void DeleteList(LinkList ,int);
void Print(LinkList L);
LinkList L;
creatList(L,7);
DeleteList(L,3);
Print(L);
return 0;   
}
搜索更多相关主题的帖子: include please number 线性表 
2013-11-12 19:03
境善
Rank: 2
等 级:论坛游民
帖 子:76
专家分:16
注 册:2012-10-29
得分:0 
回复 2楼 gaoxing123
嗯嗯,谢谢!我又改了一下,可是为什么我需要输入8个数据才能输出删除3后的链表,而且最后一个输入的数字不在链表之内
#include <stdio.h>
#include <malloc.h>
//数据类型
typedef struct Lnode
{
    int data;
    struct Lnode *next;

}Lnode,*LinkList;
//建立带头结点的线性表(头插法)
void creatList(LinkList L,int n)
{
    int x,i=0;
 Lnode *p;
 p=(Lnode *)malloc(sizeof(Lnode));
 printf("please enter the number:\n");
 while(p!=NULL&&i<n){
     
     scanf("%d ",&x);
     i++;
     p->data=x;
     p->next=L->next;
     L->next=p;
     p=(Lnode *)malloc(sizeof(Lnode));     
   
 }

}
//删除操作
void DeleteList(LinkList L,int e)
{

 Lnode *p,*pre;
 pre=L;
 p=L->next;
 while(p!=NULL){
     if(p->data==e){pre->next=p->next;free(p);p=pre->next;}
     else{p=p->next;pre=pre->next;}
 
 }
 if(p==NULL) printf("无所删数据!");
}
//打印输出

void Print(LinkList L)
{
printf("///////////////////////////////////////////////////////////////////////////\n ");
    L=L->next;
    while(L!=NULL){printf("%d ",L->data);L=L->next;}

}

int main()
{
void creatList(LinkList ,int);
void DeleteList(LinkList ,int);
void Print(LinkList L);
LinkList L;
L=(LinkList)malloc(sizeof(Lnode));
L->next=NULL;
creatList(L,7);
DeleteList(L,3);
Print(L);
return 0;   
}
2013-11-12 22:20
境善
Rank: 2
等 级:论坛游民
帖 子:76
专家分:16
注 册:2012-10-29
得分:0 
回复 6楼 于雷
恩恩,非常感谢!讲解很清楚!
2013-11-13 18:27
境善
Rank: 2
等 级:论坛游民
帖 子:76
专家分:16
注 册:2012-10-29
得分:0 
回复 7楼 xufan
恩恩!谢谢!麻烦了
2013-11-13 18:28



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




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

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