本文介绍了显示功能在我的链表程序中不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在链接列表的起始处添加节点我的代码一直只是打印我输入的最后一个值,任何人都可以清除它。



我的尝试:



i am trying to add node at the starting of linked-list my code all the time just printing the last value which i entered what is the problem can any one clear it.

What I have tried:

#include <stdio.h>

struct node
{
    int data;
    struct node *next;

};

typedef struct node node ;
node *head;

void create(int num);
void display();

main()
{
    int num,i,n;

    printf("enter the nno of node to create : ");
    scanf("%d",&n);

    for(i=0;i<n;++i)
    {
        printf("enter data for node %d= ",i+1);
        scanf("%d",&num);
        create(num);
        display();
    }
}

void create(int num)
{
    head=NULL;
    node *temp;
    temp=(node*)malloc(sizeof(node));
    temp->data=num;
    temp->next=head;
    head=temp;
    return;
}
void display()
{
    node *temp1;
    temp1=head;

    while(temp1!=NULL)
    {
        printf("data : %d-> ",temp1->data);
        temp1=temp1->next;
    }
    return;
}

推荐答案

void create(int num)
{
    // This sets head to NULL. Remove it.
    head=NULL;
    node *temp;
    temp=(node*)malloc(sizeof(node));
    temp->data=num;
    // This will be NULL because head has been set to NULL above
    temp->next=head;
    head=temp;
    return;
}



因此在声明时删除指示的行并初始化 head


So remove the indicated line and initialise head when declaring it:

node head = NULL;


node head = NULL;

main 的开头。


这篇关于显示功能在我的链表程序中不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 23:10