链表
单向链表很容易理解,就说把指针当成一条链一样连接每一个节点,每个节点包含了一个或者多个数据。链表的存储单元不一定是连续的,长度不固定,主要用于方便实现节点的插入和删除操作
//单向链表节点结构
typedef struct dlink_node
{
struct dlink_node *next;
void *val; //能存储任意类型数据
}node;
在单向链表的基础上,增加了一个指向前一个节点的指针
//双向链表节点结构
typedef struct dlink_node
{
struct dlink_node *prev;
struct dlink_node *next;
void *val; //能存储任意类型数据
}node;
循环链表与单链表的主要差异在于循环的判断上,原来是判断p->next是否为空,现在则是p->next不等于头结点,则循环未结束。
队列
栈
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《C++ 链表、栈、队列》, 一起来围观吧 https://blog.csdn.net/weixin_40535588/article/details/121725662?utm_source=app&app_version=4.20.0&code=app_1562916241&uLinkId=usr1mkqgl919blen