
数据结构
xundao_803817
这个作者很懒,什么都没留下…
展开
-
两个栈实现一个队列的功能
1. 栈: 是限制的线性表插入删除必须在同一端完成。 栈的特点: 先进后出: 入栈将数据沉入栈底,最上面的一个数据是栈顶,获取栈顶元素Top,之后要进行Pop 删除栈顶,才可以取到第二个数据。 2. 队列: 也是对线性表的一种限定,规定插入删除数据必须在异端完成。 队列的特点: 先进先出,存数据的一端叫队尾,出数据的一端叫队头; 入队:存数据; 出队:删除数据 3. 利用两个栈实现一个队列的功能 -- 思路:...原创 2021-09-06 09:44:24 · 484 阅读 · 0 评论 -
平衡二叉树
4种旋转操作: 1. 左左旋(LL) 2. 左右旋(LR) 3. 右右旋(RR) 4. 右左旋(RL) 创建二叉树实现下图操作: 实现代码: #include <stdio.h> #include <stdlib.h> // 平衡二叉树,首先是有序二叉树,任意子树的高度差都小于等于1。 // 定义二叉树节点结构体 typedef struct TreeNode { int data; // 数据域 int height; // 记录...原创 2021-08-28 15:13:26 · 142 阅读 · 0 评论 -
二叉树实现
中序遍历实现数组元素排序 struct data arr[6] = { 100, "aa", 50, "bb", 40, "cc", 120, "dd", 110, "oo", 130, "qq" }; 实现输出: arr[6] = { 40, "cc", 50, "bb",100, "aa", 110, "oo", 120, "dd", 130, "qq" }; 代码: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #in.原创 2021-08-21 11:05:27 · 86 阅读 · 0 评论 -
二叉树的存与遍历
实现如下图的中序遍历 利用栈实现中序遍历: 声明二维数组 类型为 struct treeNode* 定义一个移动的指针节点,记录要遍历的节点 进行入栈、出栈 代码: #include <stdio.h> #include <stdlib.h> /* 二叉树:是树形结构的一个重要类型 二叉树特点:是每个节点最多只能有两颗子树,且有左右之分 二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root) 的元素以及两不相交的、被分别称为左子树和.原创 2021-08-20 10:18:30 · 125 阅读 · 0 评论 -
队列 -- 双向循环链表实现
代码: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> /* 队列--双向循环链表实现 通过对线性表的插入删除操作在异端完成 比如: 头插入对应的是尾删除 尾插入对应的是头删除 出数据的一端是队头,进数据的是队尾 栈: 先进后出 队列: 先进先出 */ // 创建双向循环链表节点 struct Node { int a; struct Node* pPr.原创 2021-08-19 10:50:07 · 348 阅读 · 0 评论 -
栈--双向循环链表实现
代码: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> /* 栈 用双向循环链表实现栈 栈:是通过对线性表的插入删除操作在同一端完成(头添加,头删除 或者 尾添加,尾删除) 栈的特点: 先进先出 操作的一端叫栈顶,另一端叫栈底 栈的功能: 1.创建栈 stack 【C语言就是一个栈指针,相当于链表的头或者尾指针】 2.判断栈是否为空 isEmpty 【一.原创 2021-08-18 10:13:56 · 700 阅读 · 0 评论