链表多种多样,有双链的,有循环的,有没有哨兵位点的呀。
今天介绍单链表
单向单链表只有一个节点,指向下一个节点的。
前面的顺序表和他思路有所不同,前者需要开辟空间,开辟3个?5个?,他是不确定的,而链表是确定的一次接着一个进行,在这里两者的区别我就不多阐述了,请看:
//单链表基本格式定义
struct SQList
{
int data;
struct SQList*next //next是指向下一节点的指针
};
单链表的增删查改代码请自行去写
在这里我只讲优点:
1.在处理大文件或数据集时,程序员可以通过单链表来节省内存并提高性能。
2.单链表可以被用于实现游戏中的各种物体和角色的移动和碰撞检测。例如,游戏程序员可以使用单链表来管理所有的敌人并将它们移动到正确的位置。
3.在图像处理中,单链表可以用于描述图像中的像素。例如,图像编辑器中的撤销功能可以使用单链表来记录最近的编辑操作,并根据需要撤销它们。
4.单链表可以用来存储和检索数据
(以上全部都是人工智能回答)
不防写一个接口
//写一个增加节点的函数这是扩增所需的
//与顺序表比较,这里的扩容非常节省空间不会造成浪费
struct SQList*Add(int x) //x为存放的数据
{
struct SQList*newnode=(struct SQList*)malloc(sizeof(struct SQList));
newnode->data=x;
newnode->next=NULL;
return newnode;
}
写一个还不能展示我真正的实力不防……
我把在visual studio2022上的代码截图过来来了这是一个尾插接口挺不错的[呲牙]
这段代码懂的都懂,不懂肯定的不懂? 回答一下
1.tail是什么鬼?
答:tail是一个与phead等价的指针,负责检索tail->next是否为空若为空就找到尾就能插了
(phead是结构体指针)
2.为什么会有if,if干啥的???
da:[]:判断结构体指针是否为空,为空就开辟节点
留在最后顺序表和单链表有何区别??
仅供娱乐