数据结构
williamgavin
这个作者很懒,什么都没留下…
展开
-
数据结构--单链表的基本操作
链表的基本操作: 包括求长度, 插入数据, 删除数据, 遍历等原创 2017-06-10 21:21:40 · 775 阅读 · 0 评论 -
树
文章目录树数的基本概念树的定义基本术语树的性质树的存储结构双亲表示法孩子表示法孩子兄弟表示法二叉树二叉树的定义二叉树的形态二叉树的性质特殊二叉树满二叉树完全二叉树完全二叉树的特点完全二叉树性质二叉树的存储顺序存储链式存储结构二叉树的遍历先序遍历中序遍历后序遍历层次遍历线索二叉树线索化树、二叉树、森林森林与二叉树的转换树和森林的遍历树的遍历森林的遍历树和二叉树的应用参考资料树是一类非线性数据结构,...原创 2019-02-26 15:06:42 · 319 阅读 · 0 评论 -
详解如何将中缀表达式转化为后缀表达式
原文地址:详解如何将中缀表达式转化为后缀表达式 本文我将从两种角度来解析如何将中缀表达式转化为后缀表达式一、从应对考试角度来(在最快的时间内得出最准确的答案)首先我们应该知道,要想将中缀转化为后缀,需要借助堆栈实现。(不准备画图了,画图有点浪费时间)我会用最简单明了的语言使读者弄懂。[举个例子吧:比如将:2*(9+6/3-5)+4转化为后缀表达式2 9 6 3 ...转载 2019-02-20 21:54:34 · 995 阅读 · 0 评论 -
矩阵的存储
文章目录前言矩阵的压缩存储特殊矩阵对称矩阵三角矩阵对角矩阵稀疏矩阵系数矩阵的定义三元组顺序法行逻辑链接的顺序表十字链表总结参考资料前言字符串的操作先放一放,KMP算法有点不理解。这一章名字应该是数组和广义表的,但是我感觉矩阵的存储是最陌生的,写这个吧。这篇文章关注的重点是矩阵如何存储,而不是矩阵的运算。矩阵的压缩存储矩阵的每一个元素叫矩阵元,通常高级语言是以二维数组的形式存储矩阵元的。但...原创 2019-02-25 22:13:52 · 7217 阅读 · 0 评论 -
栈和队列
文章目录栈栈的定义栈的特点栈的实现栈的顺序实现栈的链式实现栈的应用栈的应用之函数调用(递归)共享栈队列队列的定义特点队列的实现队列的拓展双端队列循环队列参考书目栈和队列是操作受限的线性表。为什么会出现栈和队列这种数据结构呢?栈和队列的全部操作都可以用不受限的线性表来实现,为什么会出现,我觉得可能是某些情况下线性表的功能太多了,恰好在没必要提供这么多的接口,于是就出现了栈和队列。栈栈的定义...原创 2019-02-25 20:55:51 · 590 阅读 · 0 评论 -
线性表
文章目录线性表概述特点线性表的定义两表合并问题线性表的表示与实现线性表的顺序表示与实现线性表的链式表示与实现单链表静态链表循环链表双向链表一元多项式的存储参考资料线性表概述特点在数据元素的非空有限集中存在唯一一个被称为“第一个”的数据元素存在唯一一个被称为“最后一个”的数据元素除了第一个元素之外,每个元素只有唯一一个直接前驱元素除了最后一个元素之外,每个元素只有唯一一个直接后继元素...原创 2019-02-25 17:51:08 · 217 阅读 · 0 评论 -
数据结构绪论
文章目录几个概念:数据结构:逻辑结构存储结构数据类型数据类型抽象数据类型(ADT)多形数据类型算法参考资料Q:什么是数据结构?A:数据结构是研究非数值计算问题的程序设计问题中计算机操作对象以及操作对象之间的关系和操作的学科。几个概念:数据:泛指一切能输入到计算机中并被计算机识别和处理的符合的集合。数据元素:数据的基本单位。数据项:构成数据元素的不可分割的最小单位。数据对象:具有相同性...原创 2019-02-25 16:52:13 · 317 阅读 · 0 评论 -
时间、空间复杂度
文章目录时间和空间复杂度有什么用为什么需要复杂度分析?事后统计法大 O 复杂度表示法时间复杂度分析空间复杂度分析最好、最坏、平均、均摊时间复杂度最好时间复杂度最坏时间复杂度平均情况时间复杂度均摊时间复杂度参考资料时间和空间复杂度有什么用分析用来衡量算法代码的执行效率。为什么需要复杂度分析?事后统计法把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用的内存大小。这种方法叫事后统计法...原创 2019-02-08 20:48:39 · 175 阅读 · 0 评论 -
八大排序算法【下】 -- 归并、快排
归并排序 归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。不如看图 上面的解释和图片均来自百度百科。使用递归进行归并排序void Merge(int SR[], int TR[], int i, int m, int n){ int j, k, l...原创 2018-05-21 13:20:29 · 528 阅读 · 0 评论 -
八大排序算法【中】 -- 希尔、堆排序
希尔排序(Shell Sort)堆排序参考资料希尔排序(Shell Sort)上一章提到过的冒泡排序、简单选择排序和直接插入排序时间复杂度都是O(n^2);希尔排序是第一批突破这个时间复杂度的算法之一。直接插入排序在某些情况下效率是很高的,比如数据基本有序的情苦下,为什么?如果序列是:{9,1,5,8,7,3,4,6,2};这个序列如果使用直接插入排序的话,由于序...原创 2018-05-20 17:19:19 · 352 阅读 · 0 评论 -
八大排序算法【上】 -- 冒泡、简单选择、直接插入
什么是排序 & 排序算法: 排序算法 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。 ...原创 2018-05-19 21:10:21 · 307 阅读 · 0 评论 -
数据结构 - 二叉搜索树基本算法(c语言实现)
二叉搜索树基本算法:查找、删除一个节点、插入、找最大(最小)节点、中序遍历(前序和后序只要换个位置就好了)。# include <stdio.h># include <stdlib.h>// 建立节点模型typedef struct TreeNode{ int data; struct TreeNode * left; struct ...原创 2018-05-06 10:19:38 · 5217 阅读 · 2 评论 -
数据结构 - 树 (一)
内容来自于:《大话数据结构》读书笔记树的定义节点相关概念树的其他相关概念树的存储结构第一种 双亲表示法。第二种 孩子表示法方案一 给所有的节点分配的指针个数等于树的度方案二 每个结点指针域的个数等于该节点的度。方案三 孩子表示法。第三种,孩子兄弟表示法。二叉树二叉树的特点二叉树的五种基本形态。特殊二叉树第一,斜树。第二,满二叉树。...原创 2018-05-01 20:38:05 · 250 阅读 · 0 评论 -
字符串匹配算法KMP
文章目录什么是字符串匹配最容易想到的字符串匹配算法KMP算法部分匹配表什么是字符串匹配通俗的将就是在一个字符串a里面寻找另外一个字符串b,并在a中返回b的位置。比如下下面这个例子:str a = “bacbababacabcab”;str b = “ababaca”;最容易想到的字符串匹配算法跟据字符串匹配的过程,最容易想到的应该是这样:首先比较a[0]和b[0],如果相同,继续比较a...原创 2019-08-22 17:54:06 · 209 阅读 · 0 评论