![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
xundao_803817
这个作者很懒,什么都没留下…
展开
-
两个栈实现一个队列的功能
1. 栈:是限制的线性表插入删除必须在同一端完成。栈的特点:先进后出:入栈将数据沉入栈底,最上面的一个数据是栈顶,获取栈顶元素Top,之后要进行Pop 删除栈顶,才可以取到第二个数据。2. 队列:也是对线性表的一种限定,规定插入删除数据必须在异端完成。队列的特点: 先进先出,存数据的一端叫队尾,出数据的一端叫队头;入队:存数据; 出队:删除数据3. 利用两个栈实现一个队列的功能 -- 思路:...原创 2021-09-06 09:44:24 · 450 阅读 · 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 · 108 阅读 · 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 · 54 阅读 · 0 评论 -
二叉树的存与遍历
实现如下图的中序遍历利用栈实现中序遍历:声明二维数组 类型为 struct treeNode* 定义一个移动的指针节点,记录要遍历的节点进行入栈、出栈代码:#include <stdio.h>#include <stdlib.h>/* 二叉树:是树形结构的一个重要类型 二叉树特点:是每个节点最多只能有两颗子树,且有左右之分 二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root) 的元素以及两不相交的、被分别称为左子树和.原创 2021-08-20 10:18:30 · 96 阅读 · 0 评论 -
队列 -- 双向循环链表实现
代码:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>/* 队列--双向循环链表实现 通过对线性表的插入删除操作在异端完成 比如: 头插入对应的是尾删除 尾插入对应的是头删除 出数据的一端是队头,进数据的是队尾 栈: 先进后出 队列: 先进先出*/// 创建双向循环链表节点struct Node{ int a; struct Node* pPr.原创 2021-08-19 10:50:07 · 311 阅读 · 0 评论 -
栈--双向循环链表实现
代码:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>/* 栈 用双向循环链表实现栈 栈:是通过对线性表的插入删除操作在同一端完成(头添加,头删除 或者 尾添加,尾删除) 栈的特点: 先进先出 操作的一端叫栈顶,另一端叫栈底 栈的功能: 1.创建栈 stack 【C语言就是一个栈指针,相当于链表的头或者尾指针】 2.判断栈是否为空 isEmpty 【一.原创 2021-08-18 10:13:56 · 620 阅读 · 0 评论