数据结构

在C环境中使用顺序查找在表中获取数据

定义 顺序查找即线性查找, 对于顺序表可通过数组下标递增来遍历每个元素。 对于链表可通过next指针来遍历。 测试逻辑 使用随机数测试 通过结构体变量作堆空间的申请存数据和标记数据个数,生成随机数后进行查找。 结构体 动态数组,标记数据源位...

李子虎李子虎阅读(96)

二叉树的层次遍历笔记

即广度优先遍历 按层遍历,得到abcdef顺序 实现 需要辅助队列,初始化后a树根入队。while不为空,出队一个元素,出队后判断左右孩子,有就入队。 LinkQueue Q;//辅助队列 InitQueue(Q);//初始化队列 Tree...

李子虎李子虎阅读(64)

二叉树的前中后三种类型排序遍历

前序遍历 逻辑 前序遍历又称深度优先遍历。 中左右 输出abdhiejcfg,先打印左孩子,打到底后再平层打印右孩子。 实现 先打印中即树根,因遍历是以最左开始,最右结束,所以可以通过递归的思想进行调用: void PreOrder(Tre...

李子虎李子虎阅读(100)

C语言实现二叉树的创建

树的定义 树是n个节点的有限集。当n=0时称为空树。在任意一棵非空树中应满足: 有且只有一个特定的称为根的结点。 当n>1时有m个互不相交的优先集,称为根的子树。 节点结构 数据,左孩子和右孩子(分支标识) 编写笔记 建树需要辅助队列...

李子虎李子虎阅读(42)

C语言创建循环队列的两种方式

循环队列 队列定义 只能在表的一段插入(入队/进队),在表的另一端删除(出队/离队)。即FIFO。 逻辑表现 算法上表现为将数组元素围成圈,rear和front在同一个起点表示队空,rear移动后插入数据,删除数据后front向前走。 为了...

李子虎李子虎阅读(45)

使用C语言创建栈并进行数据操作

定义 只允许在一端进行插入或删除操作的线性表 注:考试中用结构体声明,不用结构体指针。 S.top=-1时栈为空 结构体 typedef struct{ int data[50]; int top; }SqStack; 入栈 先加1,再做运...

李子虎李子虎阅读(42)

C链表的初始化及数据操作

算法逻辑 链表由节点及连线组成,一个节点分配一个数据,将新旧节点连接成为一个链表。节点中有数据和下个节点的地址(指针)。 typedef int Elemtype; typedef struct LNode{ Elemtype data; ...

李子虎李子虎阅读(41)

线性表中顺序表的初始化及各项操作

初始化 定义 顺序表特征是连续不断的,其中数组符合设计思想。因此struct中数据可设计成两种,分别是data数组和当前数据长度(数量)。 初始化可通过使用typedef减少代码复杂度,代码如下: typedef struct { Elem...

李子虎李子虎阅读(46)