如何解决此排序的链表插入问题?

用户名

我得到了一个简单的任务,该任务涉及双向链表,动态数据分配和递归。我创建了一个仅包含10个整数的数组,并且尝试使用递归将这些整数放入已排序的双向链表中。我在将节点插入到链表中时遇到一些麻烦;我的输出是“ 2 7 9 100”,由于某种原因而缺少其他6个整数。我究竟做错了什么?感谢您的任何帮助!(使用的语言是C)

#include <stdio.h>

#include <stdlib.h>

#define N 10

typedef struct node_ {
  int value;
  struct node_ *next;
  struct node_ *prev;
} node;

void insert(node **head, node *cur, node *p);
void print_list(node *cur);


void print_list(node *cur)
{
  if (!cur) {
    printf("\n");
    return;
  } else {
    printf("%d ", cur->value);
    print_list(cur->next);
  }
}

int main(int argc, char *argv[])
{
  int i;
  int data[N] = {2, 7, 3, 9, 4, 4, 0, 8, 7, 100};
  node *p, *head;
  head = NULL;
  for (i = 0; i < N; i++) {
    p = (node *)malloc(sizeof(node));
    p->value = data[i];
    insert(&head, head, p);
  }

  print_list(head);
}

void insert(node **head, node *cur, node *p)
{
  if(*head == NULL) 
  {
     p->next = p->prev = NULL;
    *head = p;
    return; 
  }
  if(p->value < cur->value)
  {
    p->prev = cur->prev;
    p->next = cur;
    cur->prev = p;
    if(cur->prev != NULL) 
      cur->prev->next = p;
    else
      *head = p; 
    return; 
  }
  if(cur->next == NULL) 
  {
    cur->next = p;
    p->next = NULL;
    p->prev = cur;
  }
  else 
    insert(head, cur->next, p);
}
simple01

我相信问题在这里:

cur->prev = p;
if(cur->prev != NULL) 

如果if永远不会是错误的,因为您已经失去了的价值cur->prev

您需要保存cur->prev到一个临时变量中,并在if语句中使用它,或者在if之后进行赋值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何解决此问题,对数组进行排序?

来自分类Dev

如何解决此问题?

来自分类Dev

如何解决此导航抽屉问题

来自分类Dev

如何解决此更新问题?

来自分类Dev

如何解决此阵列问题?

来自分类Dev

如何解决此问题无法解决此符号?

来自分类Dev

我的插入排序程序出了什么问题,该如何解决?

来自分类Dev

可观察名单插入顺序改变我每次运行此代码的时间。如何解决这个问题?

来自分类Dev

我该如何解决此HREF问题

来自分类Dev

Swift结构中的内存泄漏-如何解决此问题?

来自分类Dev

此npm开关如何解决Windows路径长度问题

来自分类Dev

如何解决此javascript数组删除方法问题

来自分类Dev

我该如何解决此尝试问题

来自分类Dev

如何解决此问题ErrImageNeverPull Pod创建状态kubernetes

来自分类Dev

如何解决此问题:创建bean时出错?

来自分类Dev

如何解决在replace()中出现的此问题?蟒蛇

来自分类Dev

如何解决此标记系统路由问题

来自分类Dev

Excel-如何解决此问题:(暂时关闭)

来自分类Dev

如何解决此“用户代码未处理LocalProcessingException”的问题?

来自分类Dev

JQGrid Subgrid错误如何解决此问题?

来自分类Dev

如何解决此问题:对象作为 React Child 无效

来自分类常见问题

如何解决此CrashlyticsMissingDependencyException?

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此StackOverflowError?

来自分类Dev

如何解决此异常

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此“ NameError”?

来自分类Dev

如何解决此输出?

来自分类Dev

如何解决此错误?