1、定义 线性表:零个或多个元素组成的有限序列。第一个无前驱,最后一个无后继,其余元素都有一个前驱和后继。元素的个数为n。 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。例如,编程语言中的整型,浮点型等。 抽象数据类型ADT:对数据类型进行抽象,抽取出事务具有的普遍性的本质, ...
分类:
编程语言 时间:
2020-02-15 23:16:26
阅读次数:
101
数据结构与算法(一) 1.1数据结构概述 什么是数据结构? 数据的存储结构 顺序存储结构,类似排队打饭 链式存储结构,类似取号打饭 两种方式的区别:顺序存储影响插入后的所有元素,而链式存储影响范围更小 数据的逻辑结构 集合,维恩图 线性,列表 树形,一对多 图形,多对多的关系 1.2算法概述 即解决 ...
分类:
编程语言 时间:
2020-02-14 01:05:38
阅读次数:
86
今天要介绍的主角就是 数组 ,数组也是数据呈线性排列的一种数据结构。与前一节中的 "链表" 不同,在数组中,访问数据十分简单,而添加和删除数据比较耗工夫。这和 "什么是数据结构" 那篇文章中讲到的姓名按拼音顺序排列的电话簿类似。 数组 如上就是数组的概念图,Blue、Yellow、Red 作为数据存 ...
分类:
编程语言 时间:
2020-02-09 23:56:11
阅读次数:
125
链表:一、 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间。并把原有的数据元素复制进新的存储空间。2. 因为顺序表要求数据的存储位置不仅是逻辑上相邻而且物理存储上也要相邻,所以 ...
分类:
编程语言 时间:
2020-02-06 12:44:44
阅读次数:
68
查找算法 二分查找 标题 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 过程 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中 ...
分类:
编程语言 时间:
2020-02-03 13:53:15
阅读次数:
81
面试题63:股票的最大利润 题目描述 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖交易该股票可能获得的利润是多少?例如一只股票在某些时间节点的价格为{9, 11, 8, 5,7, 12, 16, 14}。如果我们能在价格为5的时候买入并在价格为16时卖出,则能收获最大的利润11。 问题分 ...
分类:
其他好文 时间:
2020-02-01 19:35:17
阅读次数:
70
列表 列表是Python中最基本也是最常用的数据结构之一。列表中的每个元素都被分配一个数字作为索引,用来表示该元素在列表内所排在的位置。第一个元素的索引是0,第二个索引是1,依此类推。 Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除,成员判断。 从数据结构角度看, ...
分类:
编程语言 时间:
2020-01-30 21:23:00
阅读次数:
118
顺序存储二叉树的概念 基本说明:从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。 顺序存储二叉树的特点: 1)顺序二叉树通常只考虑完全二叉树 2)第n个元素的左子节点为2*n+1 3)第n个元素的右子节点为 2*n+2 4)第n个元素的父节点为(n-1 ...
分类:
其他好文 时间:
2020-01-29 23:13:22
阅读次数:
95
在上一篇文章中我们讲了线性表,并介绍了线性表的两种实现也就是顺序表与链表,这篇文章我们来介绍一下队列这种数据结构。 不论是队列还是栈,都是对线性表进行一些操作上的限制,队列是从尾进从头出的,也就是先进先出。 队列也有两种实现的方式,顺序队列与链队列。 顺序队列 顺序队列就是利用顺序存储结构实现的队列 ...
分类:
其他好文 时间:
2020-01-28 19:38:06
阅读次数:
103
四种逻辑结构:1:集合结构 结构中的数据元素除了同属于同一个集合的关系外,无任何其他关系2:线性结构 结构中的数据元素之间存在着一对一的线性关系3:树形结构 结构中的数据元素之间存在着一对多的层次关系4:图状结构或网状结构 结构中的数据元素之间存在着多对多的任意关系 存储结构:1:顺序存储结构 用一 ...
分类:
其他好文 时间:
2020-01-28 09:26:50
阅读次数:
76