首页 > Windows开发 > 详细

【转载】每天5分钟用C#学习数据结构(1)线性表基础

时间:2020-05-28 17:45:45      阅读:63      评论:0      收藏:0      [点我收藏+]

线性表基础


技术分享图片


线性表是最简单也是在编程当中使用最多的一种数据结构。例如,英文字母表(A,B,C,D...,Z)就是一个线性表,表中的每一个英文字母都是一个数据元素;又如,成绩单也是一个线性表,表中的每一行是一个数据元素,每个数据元素又由学号、姓名、成绩等数据项组成。顺序表和链表作为线性表的两种重要的存在形式,它们是堆栈、队列、树、图等数据结构的实现基础。

1. 线性表基本定义

技术分享图片

线性表:零个或多个数据元素的有限序列。线性表中的元素在位置上是有序的,类似于储户去银行排队取钱,人们依次排着队,排在前面的先取,排在后面的则后取。这种位置上的有序性就是一种线性关系。由此可以看出:线性表的前后两个元素存在一一对应关系。

需要注意的是,这种前后关系是逻辑意义上而非物理意义上的,就好比如果银行做了改革,使用排队机 进行排队,所有储户分散在银行的各个角落,他们取钱的顺序是根据储户从排队机获取的纸条上的号码来决定的。

2. 线性表的存储结构

技术分享图片

顺序表

线性表的顺序存储结构是指【用一块地址连续的存储空间依次存储线性表中的数据元素】。就好像我们刚刚提到的改革之前的银行,需要在业务窗口前排队等候办理。由此可以看出:在顺序表中,逻辑上相邻的元素在物理上也是相邻的。
技术分享图片

链表

相比顺序表需要预先占用一块事先分配好的存储空间,链表就灵活一些。链表中逻辑上相邻的元素在物理上可以不相邻。这就好像改革之后的银行,人们办理业务的顺序是由手上的小纸条的号码来决定。在某些特定场合,链表的使用优先于顺序表。
技术分享图片

3. 小结

本文介绍了线性表的基本定义及两种不同的存储结构,或许你会觉得意犹未尽。别着急,本系列的目的就是短小精干,尽量在5分钟的碎片时间内输出一点知识就算成功了。下一篇我会介绍线性表中的顺序表在.NET中的具体实现方式:数组、ArrayList与List,然后会从源码层面看看ArrayList与List的实现要点!

[转载:每天5分钟用C#学习数据结构(1)线性表基础](Edison Zhou)

【转载】每天5分钟用C#学习数据结构(1)线性表基础

原文:https://www.cnblogs.com/wuzhixiong/p/12981465.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!