gpt4 book ai didi

c - 单链表程序中不打印节点元素

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:58 25 4
gpt4 key购买 nike

我在这里用 TurboC++ 创建了一个 C 程序。这个简单的程序目标是创建一个链表,将每个元素插入列表的末尾,然后打印节点的值。(编辑程序有所改变,使我更容易理解,但问题仍然存在存在未打印的节点)问题是,一些节点元素没有打印

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<ctype.h>
#include<conio.h>
struct node
{
int data;
struct node *link;
};
typedef struct node ND;
void main()
{
ND *start,*current,*temp;
start=NULL;
do
{
temp=(ND*)malloc(sizeof(ND));
printf("\n Enter Node Value");
scanf(" %d",&temp->data);
temp->link=NULL;
if(start==NULL)
{
start=current=temp;
}
else
{
current->link=temp;
current=temp;
}
fflush(stdin);
printf("\nDo You Want TO Continue?(Y/N)");
}while(toupper(getchar())!='N');
current=start;
printf("\nThe Elements OF Linked List ARE:");
while(current!=NULL)
{
printf(" %d",current->data);
current=current->link;
}
}

最佳答案

您从错误的元素打印列表。你应该从头开始。喜欢:

temp1 = head;
while(temp1!=NULL)
{
printf(" %d",temp1->data);
temp1=temp1->link;
}

顺便说一下,您的 head 元素将始终为 NULL。这是将元素添加到列表的正确方法:

if (head == NULL)
{
head = temp;
}
else
{
temp1 = head;
while (temp1->link != NULL)
{
temp1 = temp1->link;
}
temp1->link = temp;
}

关于c - 单链表程序中不打印节点元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40822545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com