随笔分类 - 数据结构
摘要:前言 一入编程深似海,从此砖头是爱人,日日搬,夜夜搬,搬到天荒地老,精尽人亡,直教人失去了自我,忘记了时间,忽然之间发现九月份快没了,赶紧写篇博客打个卡,证明一下我还活着。。。 数组与矩阵 数组是由一组相同类型的数据元素构成的有限序列,访问数据元素的方式是使用元素各自的序号进行访问,也就是下标。数组
阅读全文
摘要:树 什么是树? 这就是树: 我们现实生活中经常有这样的结构,比如企业层级关系: 系统目录结构: 还比如家族族谱、书籍目录章节、后台系统页面上的菜单都是树形结构。 特别要注意的是,树是不包含回路的,如下图: 节点与树叶 一棵树中的所有组成部分叫做节点,由根节点伸展扩散,上下节点连接的关系称作父子关系。
阅读全文
摘要:散列表的定义 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 从这个定义就可以得知,散列表实际上存储数据的仍然是数
阅读全文
摘要:队列的定义 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 可以直接理解成隧道,这头进,那头出。 数据呈现方式如图: 和栈一样,队列这
阅读全文
摘要:栈的定义 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉
阅读全文
摘要:链表的定义 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 我们上一节了解了数组,数组是有序的元素序列,在内存中占用了连续完整的存储空间,而链表恰恰与数组相反,链表中的元素可以分布在内存中的不同位置,有效的利用零散的碎片空间。 他们在内存中的区
阅读全文
摘要:数组的定义 数组是有序的元素序列,数据呈线性排列的一种数据结构。 表现形式如图: 查找 数组中的数据在内存中是存储在连续空间内,所以每个数据在内存中的位置是可以通过下标算出,我们使用的时候可以直接用下标来访问到指定的数据。 假设arr这个数组的内容是:[25,6,10,15]。当我们想要取到10这个
阅读全文