C语言单向循环链表,输出的最后一个元素为什么是垃圾值,求大神帮我改动一下,真心感谢!

#include<stdio.h>#include<stdlib.h>#include"Link.h"voidinitlist(LinkList*L){*L=(LNode... #include <stdio.h>
#include <stdlib.h>
#include "Link.h"

void initlist(LinkList *L)
{
*L=(LNode *)malloc(sizeof(LNode));
(*L)->next=*L;
}
int Getlen(LinkList L)
{
int num=0;
LNode *p;
p=L->next;
while(p!=L)
{
num++;
p=p->next;
}
return(num);
}
void Inselem(LinkList L,int i,int x)
{
LNode *p,*s,*q;
int pos=1;
p=L;
if(i<1 || i>Getlen(L)+1) exit(1);
s=(LNode *)malloc(sizeof(LNode));
s->data=x;
while(pos<=i)
{
q=p;
p=p->next;
pos++;
}
s->next=q->next;
q->next=s;
}
void Delelem(LinkList L , int i)
{
LNode *p,*q=L;
int pos=1;
if(i<1 || i>Getlen(L)) exit(1);
while(pos<i)
{
q=q->next;
pos++;
}
p=q->next;
q->next=p->next;
free(p);
}
void displist(LinkList L)
{
LNode *p;
p=L->next;
while(p!=NULL)
{
printf("%d\t",p->data);
p=p->next;
}
}
//Link.h是头文件。对源文件函数没有太大影响.
求大神们指教啊,最后一个问题,明天就要进行答辩。在做约瑟夫环问题,思路代码都想好了,就这个垃圾值半天解决不了,这是大一第一次答辩,真心求大神们求助
展开
 我来答
xoaxa
推荐于2017-10-04 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3476万
展开全部
void displist(LinkList L) {
LNode *p;
p = L->next;
while(p != L) { // 循环链表,终止点应该是链表头节点。
printf("%d ",p->data); // \t 换为空格
p = p->next;
}
printf("\n"); // 输出一个新行符。
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式