当前位置:首页 » 编程语言 » c语言链表输出

c语言链表输出

发布时间: 2022-09-23 10:35:50

c语言链表输出乱码

q=(struct
student*)malloc(sizeof(struct
student));
malloc并不会给内存赋初值,用memset(q,0,sizeof(struct
student));将初值赋为0;
如下,在q=(struct
student*)malloc(sizeof(struct
student));后面加上memset(q,0,sizeof(struct
student));这一句.

⑵ 如何用c语言输出整个单链表中的数据

单链表中头结点有两个作用:一是标识该链表的存在,而是可以通过头结点遍历整个链表。所以不能通过移动头结点指针遍历链表,因为一旦移动了,下次就无法定位该链表了!
void dispList(LinkList *L)
{
LinkList *p=L->next;//定义一个结点指针p指向头结点的下一个结点
while(p){ //如果p不为空则循环
printf("%d",p->data);
p=p->next;//移动指针p遍历链表
}
}

⑶ C语言链表输出,while(p)是什么意思怎么判断完成输入了

while(p)

等价于

while(p!=NULL)

如果p不指向NULL,那么就是没有到达结尾,那么就执行循环体中的printf()

⑷ C语言链表的输入输出

# include <stdio.h>
# include <malloc.h>
# define NULL 0
# define LEN sizeof(struct student)
struct student
{int num;
int score;
struct student *next;
};
int n;
struct student *creat(void)
{struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student*)malloc(LEN);
scanf("%d,%d",&p1->num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if (n==1)head=p1;
else {
p1=(struct student *)malloc(LEN);
p1->next=NULL;
p2->next=p1;
p2=p1;
scanf("%d,%d",&p1->num,&p1->score);
}
}
return(head);
}
void print (struct student *head)
{ struct student *p;
p=head;
do
{printf ("%d %d\n",p->num,p->score);
p=p->next;
}while (p!=NULL);
}
void main ()
{
print (creat());
}

代码修改好,主要注意在你没malloc空间就给结构体传值了,所以会出错
scanf("%d,%d",&p1->num,&p1->score);

⑸ c语言 插入链表节点 怎么让输出的时候和输入一样每个数字间隔空格呢现在输出的链表直接是连在一起的。

只需要将
void list(LinkList l)
{
LinkList p=l->next;
while(p!=NULL){
printf("%d",p->data);
p=p->next;
}
这部分中的 printf("%d",p->data); 改为 printf("%d ",p->data); 即可

⑹ 如何用c语言输出整个单链表中的数据

单链表中头结点有两个作用:一是标识该链表的存在,而是可以通过头结点遍历整个链表。所以不能通过移动头结点指针遍历链表,因为一旦移动了,下次就无法定位该链表了!
void
dispList(LinkList
*L)
{
LinkList
*p=L->next;//定义一个结点指针p指向头结点的下一个结点
while(p){
//如果p不为空则循环
printf("%d",p->data);
p=p->next;//移动指针p遍历链表
}
}

⑺ C语言用链表实现逆序输出

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

//定义链表节点
typedefstructLNode
{intdata;
structLNode*next;
}LNode,*Linklist;

//创建链表
Linklistcreate()
{inti,n;//i用于下面循环,n用来存放有效节点的字数
Linklistp,L;
printf("PleaseinputN=");
scanf("%d",&n);
L=(Linklist)malloc(sizeof(LNode));//分配一个不存放有效数据的头结点
L->next=NULL;
for(i=0;i<n;i++)
{p=(Linklist)malloc(sizeof(LNode));//生成新节点
scanf("%d",&p->data);//输入元素值
p->next=L->next;
L->next=p;
}
returnL;//返回头节点;
}
//链表反转输出
LinklistReverseList(LinklistL,intst)//st为1时输出结点数据
{if(L->next!=NULL)
ReverseList(L->next,1);
if(st)printf("%d",L->data);
returnL;
}

voidput(LinklistL)
{Linklistp;
p=L->next;
while(p!=NULL)
{printf("%d",p->data);
p=p->next;
}
printf(" ");
}

intmain()
{LinklistL;
L=create();
printf("A:");put(L);
printf("B:");
ReverseList(L,0);//附加结点未保存数据,故第二参数为0
return0;
}

⑻ C语言:关于链表的输出问题,为什么需要两个重复的定义

这个不叫重复定义,这是为p1动态分配内存空间,这样把不连续的内存空间连接起来构成链表

⑼ 关于C语言,结构体链表数据输出的问题

很简单,你开始写的程序里,fread调用三次之后,feof判断文件是否结尾,结果是否,所以会第四次循环又从文件中读了一次,但这次调用fread是读不出来内容的,而文件指针指向了文件结尾。所以data中的内容是随机的(malloc分配的内存内容不进行清零的处理)。
所以好的编程习惯是读的时候也做一下判断:
if(fread(fread(p,sizeof(data),1,fp) == sizeof(data))
相等说明读文件成功,否则的话说明到了文件结尾或是文件有错误。
另外你的程序中还隐藏着一个问题,用malloc分配的内存没有释放,当然你做个程序例子是可以,但真正编程序时这会造成内存泄漏。

⑽ c语言,从文件中读取单链表并输出。

需求有点不清晰,你要从文件里取什么东西出来?
我改了从txt取每一行的字符串出来,记录在你的链表,你参考一下
#include
"stdafx.h"
#include
"stdlib.h"
int
main()
{
struct
fac
{
//int
data;
char
data[256];
//不知道你要取什么数据,这里用个字符串数组代替
struct
fac
*next;
}*phead;
int
i;
FILE
*fp=fopen("d:\\text.txt","rb");
//一个有内容的txt文本,自己替换
struct
fac
*p;
struct
fac
*ptemp;
phead=(struct
fac*)malloc(sizeof(struct
fac));
phead->next=NULL;
ptemp=phead;
//fread(p,sizeof(struct
fac),1,fp);
while(fgets(
ptemp->data,256,fp
)!=NULL)//改用fgets取一行的数据
{
printf("%s\n",ptemp->data);
p=(struct
fac*)malloc(sizeof(struct
fac));
ptemp->next=p;
ptemp
=
ptemp->next;
}
//后面还应该有个释放链表的操作,这里程序结束会回收,就不写了。
}

热点内容
c语言源程序的基本单位 发布:2025-01-10 16:47:37 浏览:285
王者安卓账号如何换到苹果 发布:2025-01-10 16:34:47 浏览:729
c语言lua 发布:2025-01-10 16:34:46 浏览:206
我的世界检测服务器人员 发布:2025-01-10 16:32:30 浏览:833
数据库表模板 发布:2025-01-10 16:22:21 浏览:356
邮政新农合社保卡初始密码多少 发布:2025-01-10 16:01:32 浏览:143
安卓系统哪个最商务 发布:2025-01-10 15:49:28 浏览:910
填色脚本实例 发布:2025-01-10 15:34:21 浏览:759
如何配置烧烤 发布:2025-01-10 15:34:13 浏览:54
python列表相乘 发布:2025-01-10 15:31:33 浏览:322