Summaries of Data Structure

[size=medium][color=red]preface:[/color][/size]
[size=small]This is the first time that I make a summary about data structure.To be honest,I did not grasp it as what I want to,thus, writing this absolutely is troublesome for me.However,just like the old saying goes:You'll never know what you can do till you try, so, I am trying to strive for breakthrough in this article.[/size]

[size=medium][color=red]一、数据结构的定义(definition)[/color][/size]
数据结构(Data Structure):是计算机存储(storage)、组织数据的方式。是相互之间存在一种或多种特定关系的数据元素的集合(collection)。

[size=medium][color=red]二、数据结构的逻辑结构(logical structure) [/color][/size]
数据之间的相互关系称为逻辑结构。通常分为四类基本结构:
①集合 结构中的数据元素除了同属于一种类型外,别无其它关系。
②线性结构 结构中的数据元素之间存在一对一的关系。
③树型结构 结构中的数据元素之间存在一对多的关系。
④图状结构或网状结构 结构中的数据元素之间存在多对多的关系。

[color=red][size=medium]三、数据结构在计算机中的存储结构(storage structure)[/size][/color]
①顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
②链式存储结构:在每一个数据元素中增加一个存放地址的指针,用此指针来表示数据元素之间的逻辑关系。

[size=medium][color=red]四、数据结构的基本类型(fundamental types)[/color][/size]
[color=blue]线性表(liner_list):[/color]是最简单、最基本、也是最常用的一种线性结构。 线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,通常记为: (a1,a2,… ai-1,ai,ai+1,…an) ,其中n为表长, n=0 时称为空表。 它有两种存储方法:顺序存储和链式存储,它的主要基本操作是插入、删除和检索等。
[color=blue]数组(array):[/color]在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
[color=blue]栈(stack):[/color]是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
[color=blue]队列(queue):[/color]一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。
[color=blue]链表(linked list):[/color]是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
[color=blue]树(tree):[/color]是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:
  (1)有且仅有一个结点 K0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。  (2)除K0外,K中的每个结点,对于关系N来说有且仅有一个前驱。
  (3)K中各结点,对关系N来说可以有m个后继(m>=0)。
[color=blue]堆(heap):[/color]在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
[color=blue]图(graph):[/color]图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
[color=blue]哈希表(hash):[/color]若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。

(未完待续)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值