数据结构与算法
文章平均质量分 82
keep_trying_gogo
千万不要在最能吃苦的年纪选择安逸,与君共勉。
展开
-
数据结构与算法(一)线性表
一定义二特征三数组实现线性表四链表实现线性表一、定义线性表:n个数据元素的有序集合。线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的原创 2018-01-28 14:29:14 · 355 阅读 · 0 评论 -
数据结构与算法(二)栈
一栈的定义二栈的顺序存储三栈的链式存储四 栈的应用一、栈的定义栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:结论:后进先出(Last In First Out),简称为LIFO线性表。 栈的基本运算有六种:构造空栈:InitStack(S)、判栈空: StackEmpty(S)、判栈满: StackFull原创 2018-01-28 17:59:31 · 628 阅读 · 0 评论 -
数据结构与算法(三)堆
一定义二创建及排序一、定义堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, … , Rn}当且仅当满足下列关系之一时,称之为堆: (1) Ri (2) Ri >= R2i+1 且 Ri >= R2i+原创 2018-01-28 19:00:02 · 263 阅读 · 0 评论 -
数据结构与算法(四)队列
一队列定义二 假上溢三 队列的顺序存储四队列的应用一、队列定义队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头 (Front),队列的操作原则是先进先出的,所以队列又称作FIFO表(First In First原创 2018-01-28 19:10:20 · 333 阅读 · 0 评论 -
数据结构与算法(五)链表
一 单向链表二 双向链表三 循环链表谈到链表之前,在说一下线性表。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。顺序存储结构就是两个相邻的元素在内存中也是相邻的。优点是查询的时间复杂度为O(1),通过首地址原创 2018-01-28 19:14:35 · 240 阅读 · 0 评论 -
数据结构与算法(六)树&二叉树
一树的相关概念二二叉搜索树查找插入遍历查找最值删除节点三二叉树遍历示例我们知道,有序数组可以利用二分查找法快速的查找特定的值,时间复杂度为O(log2N),但是插入数据时很慢,时间复杂度为O(N);链表的插入和删除速度都很快,时间复杂度为O(1),但是查找特定值很慢,时间复杂度为O(N)。那么,有没有一种数据结构既能像有序数组那样快速的查找数据,又能像链表那样快速的插原创 2018-01-29 19:45:28 · 453 阅读 · 0 评论