数据结构
文章平均质量分 94
数据结构
_popo_
这个作者很懒,什么都没留下…
展开
-
【数据结构】(C语言版)第5章:树与二叉树
文章目录一、树的概念1.树的性质2.练习题一、树的概念1.树的性质(5)树的度为m 与m叉树的区别(6)高度为h的m叉树,至少有h个结点高度为h、度为m的树,至少有h+m-1个结点再次体会度为m、与m叉树的不同2.练习题...原创 2021-07-04 22:00:48 · 342 阅读 · 0 评论 -
【数据结构】(C语言版)第4章:串与KMP算法
文章目录暴力匹配算法的缺点:当某些子串与模式串能部分匹配时,若遇到失配,主串的扫描指针 i 经常回溯,导致时间开销增加。KMP算法:尝试让主串中的指针 i 不回溯,而让模式串的指针 j 回溯到合适位置。举一个例子:如下图,最后一个字符 j = 6 失配,以人脑来考虑,可以直接让模式串与从 i 开始处与主串匹配。不再做其他无用的匹配。也就是:i 不动,模式串指针 j 回溯到 j=1位置,然后继续与 i 当前所指向继续匹配。(图像上看,就像模式串右移了5步)当检索到 j=5 时失配,以人脑考原创 2021-07-03 22:44:05 · 149 阅读 · 2 评论 -
【数据结构】(C语言版)第三章:栈和队列
文章目录一、栈1.基操2.共享栈3.链栈4.练习题二、队列1.顺序存储2.链式存储3.双端队列三、栈和队列的应用四、特殊矩阵1.压缩存储2.稀疏矩阵一、栈1.基操2.共享栈3.链栈4.练习题综合题2:判断链表的全部n个字符是否中心对称答:思路1:使用栈来辅助,让链表的前一半元素以次进栈。然后遍历链表的后一半元素,每访问到一个元素,就从栈中弹出一个元素,两个元素进行比较,若相等,则遍历链表下一个元素与栈中再弹出一个进行比较;否则,当链表中有一个元素与栈中弹出元素不等时,立即得该链表不是中心原创 2021-06-30 18:39:39 · 359 阅读 · 0 评论 -
【数据结构】(C语言版)第二章:线性表
文章目录二、单链表二、单链表概念:每个结点,除了存放自身数据外,还需要存放一个指向其后继的指针。单链表是非随机存取的,查找某个结点时,需要从表头开始遍历。头结点与头指针的区别:不管带不带头结点,头指针始终指向链表的第一个结点。而头结点是带头结点的第一个结点。通常带头结点的链表更方便,在插入或删除时不用再进行特殊判断。1.定义typedef struct LNode{ ElemType data; struct LNode * next;}LNode,*LinkList;2.创原创 2021-06-28 16:15:45 · 75 阅读 · 0 评论 -
【数据结构】Java实现常用数据结构
【数据结构】Java算法基础一、前言KMP算法汉诺塔八皇后(分治算法)马踏棋盘算法(骑士周游问题)图的深度优先算法+贪心算法优化第一章、稀疏数组和队列1.1 稀疏数组基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:记录数组一共有几行几列,有多少个有效值把具有不同值的有效元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模package zy.code.sparsearray;/** * 稀原创 2020-09-15 15:02:33 · 942 阅读 · 0 评论 -
【数据结构】Java代码实现七大排序算法
文章目录冒泡排序选择排序插入排序希尔排序快速排序归并排序桶排序冒泡排序 public static void bubble(int[] arr){ for (int i = 0; i < arr.length - 1; i++){ //System.out.println("第"+ (i+1) + "趟排序"); boolean flag = false; for (int j = 0; j < ar原创 2020-07-27 14:00:36 · 89 阅读 · 0 评论 -
【数据结构】常见排序算法
文章目录冒泡排序交换排序折半查找&二分排序冒泡排序每次都是相邻元素比较/* 冒泡排序 *//* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 *//* 2. 对所有元素均重复以上步骤,直至最后一个元素 *//* elemType arr[]: 排序目标数组; int len: 元素个数 */void bubbleSort (elemType arr[], in...原创 2020-04-03 10:05:04 · 271 阅读 · 0 评论 -
【数据结构】二叉树的遍历算法(非递归)
文章目录先序遍历递归算法非递归算法中序遍历递归算法非递归算法后序遍历递归算法非递归算法层次遍历先序遍历递归算法void PreOrder(BiTree T){if(T!=NULL){ printf(“%c”,T->data) //访问根结点 PreOrder(T->lchild); //递归遍历左子树 PreOrder(T->rchild); //递归遍历右子...原创 2020-02-22 15:04:47 · 158 阅读 · 0 评论