C#数据结构.pptx
《C#数据结构.pptx》由会员分享,可在线阅读,更多相关《C#数据结构.pptx(71页珍藏版)》请在优知文库上搜索。
1、l 数据:描述客观事物的信息(数,字符,符号等)的集合,是程序处理的对象。数据结构基本概念l数据元素:是数据集合中的个体,是构成数据对象的基本单位,一个数据元素可由若干个数据项组成。l 数据项:是数据的最小单位。l 一组数据元素具有某种结构形式。对象对象的属性数据结构定义 数据结构: 描述了一组性质相同的数据元素及元素间的相互关系。都是学生D:一帮学生R:按学号排序数据结构概念的三要素定义p 数据元素之间的逻辑关系p 数据元素在计算机中的存储方式p 在这些数据元素上定义的运算的集合数据结构的基本分类两大类: (一)线性结构(线性表)线性结构(线性表) 数据元素之间的逻辑关系可以用一个线性序列简
2、单地表示出来。 线性表是典型的线性结构,它的数据元素只按先后次序联接。 表、栈、队列、字串、数组和文件等方式。(二)非线性结构(树,图)非线性结构(树,图) 不满足线性结构特点的数据结构称为非线性结构。 树、图等是非线性结构。 树中的数据元素是分层次的纵向联接。 图中的数据元素则有各种各样复杂联接。 其它种类的数据结构由这三种基本结构派生的。数据存储结构的基本方式最常用的二种方式是:p顺序存储结构顺序存储结构p链式存储结构链式存储结构。p 数据元素按某种顺序存放在存储器的连续存储单元中。p 逻辑相邻,物理上相邻,数据元素之间的关系由存储单元的邻接关系唯一确定。例如 数组就是这种存储方式顺序存储
3、结构 学生名单(逻辑结构) 顺序物理结构(数组student)071230李俊student0071230李俊073181章明student1073181章明081293向民student2081293向民091281肖进student3091281肖进顺序存储结构特点结点中只有自身信息域,没有连接信息域。存储密度大,存储空间利用率高;可以通过计算直接确定数据结构中第i个结点的存储地址。即可以对记录直接进行存取;插入、删除运算会引起大量结点的移动;要求存储在一片连续的地址中。这种存储方式主要用于线性的数据结构。p存储数据结构的内存空间可以不连续, 数据元素之间的关系由指针来确定。链式存储结构主
4、要特点是:结点由两类域组成:数据域和指针域。链式存储结构特点逻辑上相邻的结点物理上不必邻接,既可实现线性数据结构,又可用于表示非线性数据结构。插入,删除操作灵活方便,不必移动结点,只要改变结点中的指针值即可。特点:表中的每个元素呈线性关系,除第一个外,都有一个直接前趋(predecessor),除最后一个元素外,都仅有一个后继(successor)。线性表线性表最简单,最常用的数据结构线性表的逻辑结构线性表的逻辑结构 线性表L用符号表示为:L=(a1,a2,a3,. ai.,an)线性表的存储结构l 存储结构:顺序存储结构和链接存储结构。l 具有顺序存储结构的线性表称为顺序表 用数组储线性表中
5、的每个数据元素。l 具有链接存储结构的线性表称为线性链表。 用一组任意的存储单元来存储线性表中数据元素的,这组存储单元可以是连续的,也可以是不连续的。通常亦称为链表。 常用的链表有单链表、循环链表和双向链表。顺序表类设计分析对象的属性: 自己现有的数据:存放在一个数组中 现有数据的个数:长度 能存放多少数据:容量动作(Method) 构造方法:传递表的容量,创建一个空表,有效长度=0 插入:新数据插入后,数据还是有序的,长度增1 增加:在表的尾部增加一个数据,长度增1 查找:根据键值,找到数据在表中的位置,并返回,找不到返回-1 更新:用指定的值更新表中指定位置的元素的值 排序:将表中元素按从
6、小到大排序。 获得某位置元素的值: 获得线性表的长度类型 dataint lengthInt volume?能为每个方法作定义吗?名字,形参表,返回类型确定表中的元素public class Student public string no,name; public double math,eng,computer; public Student() . ?这个类有点怪,属性都是public没其他方法这种类称为数据类去重 返回类型问题 是重新生成一个?还是直接删除应该是:应该是:ArrayList应该是:重新生成一个应该是:重新生成一个 不破坏原来的数据不破坏原来的数据去重的思维 你是怎么思维
7、的?扩展思维数据不断添加,顺数据不断添加,顺序表满了后,能否序表满了后,能否自动长大?自动长大?原来变更后,原来的2倍StudentdataStudenttemplength?volume?for() tempi = datai单链表线性表的另一种存储方式一一 链表的基本组成元素链表的基本组成元素由表头指针决定由表头指针决定通过移动指针遍历链表,遇到通过移动指针遍历链表,遇到null结束结束组成要素:组成要素:节点,节点中包含数据节点,节点中包含数据链表的属性定义:链表的属性定义:null单链表一 链表的基本组成元素节点public class Node / 定义节点类定义节点类 public
8、 int data; public Node next; public Node(int i) data = i; next = null; 链表的逆转先生成一个空新链表先生成一个空新链表 遍历原链表遍历原链表每取一个节点,向新表的表头插入新节点每取一个节点,向新表的表头插入新节点直到原表遍历结束直到原表遍历结束去重的原理 生成一个新链表 遍历原表,每取一个节点,判断它在新表中是否存在,如果重复就不加。 直到原表结束限定在一端进行插入与删除的线性表。允许操作的一端称为栈顶,而不允许操作的一端为栈底。 给定 栈 (a1, ,an-1 ) 称a1为栈底元素, an为栈顶元素。特点 后进先出(LIF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 数据结构