原文:浅入浅出数据结构(9)——多重表(广义表)

在深入浅出数据结构系列前面的文章中,我们一直在讨论 线性表 ,其形式如下: 由a ,a ,a , a n 个元素组成的序列,其中每一个元素ai lt i lt n 都是一个 原子 , 原子 的意思就是说元素本身是一个个体,所有元素都是相同的结构。 但是在我们常见的某些应用,比如Excel的表格中,我们发现表并不一定是线性表,Excel中的表就明显是二维的结构 那么在数据结构中,我们会使用这种广义 ...

2017-05-22 17:14 0 2054 推荐指数:

查看详情

数据结构(6)——游标数组及其实现

  在前两次博文中,我们由线性讲到数组,然后又由数组的缺陷提出了指针式链表。但是指针式链表也不是完美无缺的,在某些没有指针数据类型的编程语言中,指针式链表是无法由我们来实现的,但是有时候我们又希望能用上链表,因为链表可以快速的进行插入和删除。这个时候我们就可以使用一种由数组来实现的“链表 ...

Sun Apr 02 08:49:00 CST 2017 0 1844
数据结构(18)——希尔排序

  在上一篇博文中我们提到:要令排序算法的时间复杂度低于O(n2),必须令算法执行“远距离的元素交换”,使得平均每次交换减少不止1逆序数。   而希尔排序就是“简单地”将这个道理应用到了插入排序中, ...

Wed Sep 20 00:21:00 CST 2017 1 996
数据结构(20)——快速排序

  正如上一篇博文所说,今天我们来讨论一下所谓的“高级排序”——快速排序。首先声明,快速排序是一个典型而又“简单”的分治的递归算法。   递归的威力我们在介绍插入排序时相比已经见识过了:只要我前面的 ...

Fri Sep 22 04:33:00 CST 2017 0 1626
数据结构(10)——树的简介

  到目前为止,我们一直在谈论的数据结构都是“线性结构”,不论是普通链表、栈还是队列,其中的每个元素(除了第一个和最后一个)都只有一个前驱(排在前面的元素)和一个后继(排在后面的元素),但是在(9)中,我们发现有的时候“线性结构”是不能满足我们的需求的,必然存在某些场景需要我们使用非线性的数据结构 ...

Fri Jul 28 09:04:00 CST 2017 0 3355
数据结构4(数组和广义

第4章 数组和广义 【例4-1】二维数组A的每一个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A以行为主序存储元素,A[8][5]的物理地址与当A按列为主序存储时的元素( )的物理地址相同。设每个字符占一个字节。 A.A[8][5] B.A ...

Sun Jul 07 01:45:00 CST 2019 0 699
数据结构(24)——最短路径问题

  上一篇博文我们提到了图的最短路径问题:两个顶点间的最短路径该如何寻找?其实这个问题不应该叫“最短”路径问题,而应该叫“最便宜”路径问题,因为有时候我们会为图中的边赋权(weight),也叫权重,相 ...

Sat Feb 10 04:50:00 CST 2018 0 5716
数据结构(23)——图的概念、存储方式与拓扑排序

  到目前为止,我们所提过的所有数据结构,不是线性,就是树。即使是散列表、优先队列、AVL树这样看似特殊的数据结构,其实也没逃出线性与树的范畴,那么,在数据结构方面(如果是说算法方面,那么与线性、树相关的算法可讲不完),还有什么我们尚未探讨的情况吗?   答案是肯定的,那就是:图 ...

Thu Feb 08 22:52:00 CST 2018 0 1521
数据结构(15)——优先队列(堆)

  在普通队列中,元素出队的顺序是由元素入队时间决定的,也就是谁先入队,谁先出队。但是有时候我们希望有这样的一个队列:谁先入队不重要,重要的是谁的“优先级高”,优先级越高越先出队。这样的数据结构我们称之为优先队列(priority queue),其常用于一些特殊应用,比如操作系统控制进程的调度程序 ...

Wed Sep 06 21:03:00 CST 2017 11 1223
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM