C语言程序,怎么在结构体链表中插入或者删除某个结构体?

C语言程序,怎么在结构体链表中插入或者删除某个结构体?,第1张

没学过数据结构?那你们老师在干嘛?数据结构不应该是和语言同步进行的吗?

struct A //这就是个结构体,包含数据域和指针

{

int a//数据域,可以是任何类百型的。

char b//数据域

A *p//指针域,就是struct A类型。

}链表,一般是动态的。你要静态的就不用malloc分配就行了。定义N个struct

A就行了。

struct A a1

struct A a2

struct A a3

struct A a4

//a1作为第一个节点

a1->next = a2

a2->next = a3

a3->next = a4

a4->next = NULL

//插入,在a2后面插入a5

struct A a5

a5->next = a2->next

a2->next = a5//注意指针的赋值顺序。虽然全部是度静态的问题不大。动态分配的时候不仔细会造成断链,内存溢出。

//删除a5

a2->next = a5->next//静态不存在释放的问题,动态申请的请释放a5;

单向链表只需要记住上面节点的指针即可,让上面指针指向你要插入的结构体节点的首位置,然后有两种情况:1. 如果你要在链表中间插入,那么你插入的节点的指针指向原来的下一个节点; 2. 如果在链表末尾插入,那么就直接将你插入节点的指针置为NULL


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11887564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存