gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:41 25 4
gpt4 key购买 nike

我刚开始学习 c 中的指针,我正在做 stephen G. Kochan 的 c 编程练习题。其中一个问题是

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

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

#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;
}

关于c - 在c中的链表中插入一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36770718/

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