【问题标题】:Why my linked list is displaying garbage values为什么我的链表显示垃圾值
【发布时间】:2017-10-17 18:49:26
【问题描述】:

我在 C 中的双向链表显示的是垃圾值而不是我输入的值,我已经在 Turbo C++ 上运行了这段代码。 代码正确编译,出现 0 个错误和 0 个警告,但仍然显示一些垃圾值。我已经包含了库(stdio.h、conio.h、stdlib.h、malloc.h) 这是代码:

struct dlist
{
  int data;
  struct dlist *next;
  struct dlist *prev;
};

struct dlist *head, *end;

void create_dlist()
{
  char k='y';
  struct dlist *new_node;
  while(k=='y'||k=='Y') {
    if(head==NULL) {
      new_node=(struct dlist *)malloc(sizeof(struct dlist));
      printf("Enter the integer value -> ");
      new_node->data=0;
      new_node->next=NULL;
      new_node->prev=NULL;
      scanf("%d",&new_node->data);
      head=new_node;
      end=new_node;
    } else {
      new_node=(struct dlist *)malloc(sizeof(struct dlist));
      printf("Enter the integer value -> ");
      new_node->data=0;
      new_node->next=NULL;
      new_node->prev=end;
      scanf("%d",&new_node->data);
      end->next=new_node;
      end=new_node;
    }
    printf("Do you want to continue (y/n) ; ");
    scanf(" %c",&k);
  }
}

void display()
{
  struct dlist *pointer;
  pointer=head;
  if(pointer!=NULL) {
    while(pointer->next!=NULL) {
      printf("%d\t",&pointer->data);
      pointer=pointer->next;
    }
  } else {
    printf("list is empty");
  }
}

int main()
{
  clrscr();
  head=NULL;
  end=NULL;
  create_dlist();
  display();
  getch();
  return 0;
}

编码的解决方案会很有帮助

【问题讨论】:

  • 一方面,display 似乎没有显示列表的最后一个元素。例如,如果列表只有一个元素,while 循环将在执行任何操作之前立即退出。
  • 还有printf("%d\t",&pointer->data); --> printf("%d\t", pointer->data);

标签: c linked-list structure


【解决方案1】:

整个问题都在display()。首先你打印地址而不是数据值。此外,您没有打印最后一个元素。我做了一些改变。如果您需要任何解释,请询问我。

void display()
{
    struct dlist *pointer;
    pointer=head;
    if(pointer!=NULL)
    {
        while(pointer!=NULL)
        {
            printf("%d\t",pointer->data);
            pointer=pointer->next;
        }
    }
    else
    {
        printf("list is empty");
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 2016-07-08
    • 2021-11-02
    • 2016-03-02
    • 2020-12-17
    相关资源
    最近更新 更多