在c的链表中插入一个条目

ash

我刚刚开始学习c语言中的指针,并且我正在由stephen G. Kochan用c语言进行编程中的练习题问题之一是

  • 编写一个名为insertEntry的函数,以将新条目插入到链表中。让该过程将要插入的列表条目(本章定义的struct条目类型)的指针和要插入新条目的列表中元素的指针作为参数。

我已经回答了这个问题,因为它非常简单。下面是它的源代码

#include<stdio.h>
struct entry
{
  int value;
  struct entry *next;
};
void insertEntry(struct entry *newPtr,struct entry *afterPtr);
int main(void)
{
  struct entry n1,n2,n3;

  struct entry *startPtr=&n1;

  n1.value=100;
  n1.next=&n2;

  n2.value=200;
  n2.next=&n3;

  n3.value=300;
  n3.next=(struct entry *)0;

  struct entry n2_3;
  n2_3.value=250;

  insertEntry(&n2_3,&n2);

  struct entry *listPtr;
  listPtr=startPtr;

  while(listPtr!=(struct entry *)0)
    {
      printf("%i ",listPtr->value);
      listPtr=listPtr->next;
    }
  printf("\n");

  return 0;
}
void insertEntry(struct entry *newPtr,struct entry *afterPtr)
{
  newPtr->next=afterPtr->next;
  afterPtr->next=newPtr;
}

我坚持的另一个问题是

  • 上面练习中开发的函数仅在列表中的现有元素之后插入一个元素,从而防止您在列表的前面插入新条目。您如何使用相同的功能却又克服了这个问题?(提示:考虑设置一个特殊的结构以指向列表的开头。)

无论如何我都想不出第二个问题。任何前进的有用提示或想法都将非常有帮助。另外,我知道这不是一个辅导网站,但是我试图自己学习这些东西,没有人可以联系,如果有人帮助我前进,我将非常感激。

泛光灯

您可以定义链接列表的类型,该列表具有对列表标题的引用:

struct list {
    struct entry *head;
};

void insert_head(struct list *list, struct entry *node) {
    node->next = list->head;
    list->head = node;
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C中的双链表,忽略最后一个条目,或者想要一个不存在的条目

链表在排序链表中插入一个节点

它只在链表中插入最后一个矩阵

插入一个简单的单链表

在哈希中的某个位置插入一个条目

在一个表中插入多个条目-动态值

将一个表中的值插入多个条目

在链表 C 中插入一个节点:预期的 node_t * 但参数的类型为 node_t

从链表C#中删除最后一个节点

在C中的链表的末尾添加一个新节点

从C中的链表中弹出一个元素

如何将一个链表插入另一个链表?

用C语言从另一个链表中填充空链表

C++链表,调用链表中的下一个指针时程序卡住

插入链表中总是返回最后一个节点,而不是当前节点

在给定节点之后在双向链表中插入一个节点

在python的链表中的第N个位置插入一个节点

如何在类似结构的链表中插入新节点?另一个

C++链表插入节点,上一个节点初始化

在链表的第n个位置插入一个节点

递归地在链表末尾插入一个节点

Sql从一个表插入id到另一个表中的条目

如何在另一个数组中随机插入数组的条目反应本机

从另一个线程插入/擦除时,能否访问C ++ 11 std :: map条目?

如何比较C++中的2个链表并将匹配的数据放入另一个链表

如何在保持排序的同时将排序的链表插入另一个排序的链表?

Python函数---在链表的开头和结尾插入一个值---不修改链表

将一个链表复制到另一个链表 C++

PDO插入数组仅显示一个条目