数据结构
文章平均质量分 80
数据结构
安河桥畔
保持专注,做正确的事
展开
-
双链表的基本操作
带头结点的双向循环链表 链表结构如下: 每个节点都有一个数据域和两个指针域,这两个指针分别指向链表的前驱节点和后继节点,头节点的前驱节点是链表的最后一个节点,链表最后一个节点的后继节点是头节点。 正因为如此,带头结点的双向循环链表没有空节点,在进行遍历时,循环条件也与单链表不同: 单链表用cur->next为空判断当前节点是否为最后一个节点,带头的双向循环链表则需判断cur->next是否等于头节点。 定义: typedef int DataType; typedef struct ListN原创 2022-03-03 15:54:39 · 2754 阅读 · 1 评论 -
单链表的基本操作(创建、销毁、增删查改等)
链表分类 链表主要有下面三种分类方法: 单向或者双向 带头或者不带头 循环或者非循环 综合来看链表有八种类型,本文主要针对的是不带头节点的非循环单链表。 单链表的介绍 typedef struct SListNode { DataType data;//数据域 struct SListNode *next;//结构体指针,指向下一个节点 }SListNode;//类型别名 如图 链表的每一个节点由数据域和指针域构成,数据域存放数据,指针域中的指针指向下一个节点。plist表示链表的指针,指向链表原创 2022-01-05 12:38:12 · 1969 阅读 · 0 评论 -
顺序表的基本操作(初始化、插入、删除、查询、扩容、打印、清空等)
顺序表的基本操作 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改等基本操作。 初始化函数 初始化结构体,开辟空间 void SeqListInit(SeqList* ps, size_t inite_capicity) { assert(ps); ps->arr = (SLDataType*)malloc(sizeof(SLDataType) * inite_capicity); if (NULL == ps->arr)原创 2021-11-19 02:07:08 · 3000 阅读 · 3 评论