C语言单链表遍历时出错,我不知道错在哪,求高人指点
#include<stdio.h>#include<stdlib.h>typedefintElemType;typedefstructLNode{intdata;stru...
#include<stdio.h>#include<stdlib.h>
typedef int ElemType;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *LinkList;
void CreatList_L(LinkList &L,int n) //创建链表
{
L=(LNode*)malloc(sizeof(LNode));
LNode *current;
current=L;
printf("请输入第1个数据:\n");
scanf("%d",&L->data);
for(int i=2;i<=n;i++)
{
LNode *Newnode=(LNode*)malloc(sizeof(LNode));
scanf("%d",&Newnode->data);
printf("请输入第%d个数据:\n",i);
current->next=Newnode;
current=current->next;
}
}
void ListTraverse (LinkList &L) //遍历整个链表{
LinkList current;
current=L;
while(current!=NULL)
{
printf("%4d",current->data);
current=current->next;
}
}
void main()
{
LinkList L,p;
int n,i;
printf("please enter the length of the linklist n:");
scanf("%d",&n);
CreatList_L(L,n);
p=L;
for(i=1;i<=n;++i)
{
printf("%4d",p->data);
p=p->next;
}
printf("\n");
ListTraverse (L);
printf("\n");
} 展开
typedef int ElemType;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *LinkList;
void CreatList_L(LinkList &L,int n) //创建链表
{
L=(LNode*)malloc(sizeof(LNode));
LNode *current;
current=L;
printf("请输入第1个数据:\n");
scanf("%d",&L->data);
for(int i=2;i<=n;i++)
{
LNode *Newnode=(LNode*)malloc(sizeof(LNode));
scanf("%d",&Newnode->data);
printf("请输入第%d个数据:\n",i);
current->next=Newnode;
current=current->next;
}
}
void ListTraverse (LinkList &L) //遍历整个链表{
LinkList current;
current=L;
while(current!=NULL)
{
printf("%4d",current->data);
current=current->next;
}
}
void main()
{
LinkList L,p;
int n,i;
printf("please enter the length of the linklist n:");
scanf("%d",&n);
CreatList_L(L,n);
p=L;
for(i=1;i<=n;++i)
{
printf("%4d",p->data);
p=p->next;
}
printf("\n");
ListTraverse (L);
printf("\n");
} 展开
2个回答
展开全部
//CreatList_L要改一一下
void CreatList_L(LinkList &L,int n) //创建链表
{
L=(LNode*)malloc(sizeof(LNode));
LNode *current;
current=L;
printf("请输入第1个数据:\n");
scanf("%d",&L->data);
for(int i=1;i<n;i++)
{
LNode *Newnode=(LNode*)malloc(sizeof(LNode));
printf("请输入第%d个数据:\n",i+1);
scanf("%d",&Newnode->data);
current->next=Newnode;
current=current->next;
}
current->next=NULL;
}
void CreatList_L(LinkList &L,int n) //创建链表
{
L=(LNode*)malloc(sizeof(LNode));
LNode *current;
current=L;
printf("请输入第1个数据:\n");
scanf("%d",&L->data);
for(int i=1;i<n;i++)
{
LNode *Newnode=(LNode*)malloc(sizeof(LNode));
printf("请输入第%d个数据:\n",i+1);
scanf("%d",&Newnode->data);
current->next=Newnode;
current=current->next;
}
current->next=NULL;
}
展开全部
在创建链表函数最后加上current->next=NULL;即可
void CreatList_L(LinkList &L,int n) //创建链表
{
L=(LNode*)malloc(sizeof(LNode));
LNode *current;
current=L;
printf("请输入第1个数据:\n");
scanf("%d",&L->data);
for(int i=2;i<=n;i++)
{
LNode *Newnode=(LNode*)malloc(sizeof(LNode));
printf("请输入第%d个数据:\n",i);
scanf("%d",&Newnode->data);
current->next=Newnode;
current=current->next;
}
current->next=NULL;
}
void CreatList_L(LinkList &L,int n) //创建链表
{
L=(LNode*)malloc(sizeof(LNode));
LNode *current;
current=L;
printf("请输入第1个数据:\n");
scanf("%d",&L->data);
for(int i=2;i<=n;i++)
{
LNode *Newnode=(LNode*)malloc(sizeof(LNode));
printf("请输入第%d个数据:\n",i);
scanf("%d",&Newnode->data);
current->next=Newnode;
current=current->next;
}
current->next=NULL;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询