- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.数据结构与算法
1.0数据结构研究的对象
线性结构(顺序表、堆栈、对列)
(1)逻辑结构
非线性结构(树、二叉树)
顺序结构
(2)物理结构(存储结构)
链式结构(链表)
(3)算法(插入、删除、查找、排序)
算法及其度量
算法+数据结构=程序
四大特征:可行性、确定性、有穷性、拥有足够的情报(I/O)
度量算法有时间复杂度和空间复杂度
时间复杂度的类型:O(n)线性级,O(n2)指数级,O(log2n)对数级
1.1 线性表
1.1.1集合(数组、字串)
关键字:结点、前趋(件)、后继(件)
特点:
结点可以是简单的数据元素,也可以是复杂的数据记录
线性表的存储
顺序存储
链式存储
顺序存储的特点:预分配,大小固定,(插入删除时)移动困难,顺序存储随机存取
链式存储的特点:根据需要分配,插入删除灵活,结点占据空间大,随机存储顺序存取
链表分类:单链表、双链表、带头结点的链表、循环链表
1.1.2 堆栈Stack
只有一个端口的线性表,特点是先进后出FILO或后进先出LIFO
栈可以是顺序存储,也可以是链式存储(少)
栈的操作:进栈(插入TOP++),出栈(删除TOP--)
堆栈的状态:空栈(下溢)、满栈(上溢)
1.1.3 队列Queue
具有两个端口的线性表,特点是先进先出FIFO或后进后出LILO
队列的存储常用顺序存储形式,用两个指针指示队列中元素的位置
front队头指针rear队尾指针
队列的操作:入队(插入rear+1)出队(删除front-1)
队列的状态:标志位(s),s=0为空队s=1为非空队
队满s=1且front=rear(循环队列的概念)
1.2 树与二叉树
1.2.1 树的基本概念
定义:
由n(n0)个结点组成的有限集合T(树)
存在一特定结点—根结点
其余结点组成M(m≥0)个不相交的集合Ti
(T1、T2、T3…Tm称子树)
有关术语:父结点、子结点、兄弟结点、叶子结点
结点的度、分支结点、结点的层次、树的高度
树的度
1.3二叉树
定义:
由n(n0)个结点组成的有限集合T
T中每个结点最多有两个不相交的子树(左子树和右子树)
T称二叉树(叉树的度为2)
基本性质:
性质1:第k层上最多k-1个结点
性质2:深度为m的二叉树最多的有2m-1个结点
性质3:叶子结点的个数比度为2的结点个数多1
性质4:具有n个结点的二叉树其深度至少为[log2n]+1
特殊二叉树:
满二叉树
完全二叉树
二叉树的存储:
例:
顺序存储
链式存储
二叉树的遍历:
前序(根)遍历
中序(根)遍历
后序(根)遍历
1.4算法
1.4.1 插入算法
两种情况:有序与无序
int insert(int a[],int n,int x,int y)
int insert(int a[],int n,int x)
时间复杂度:O(n)=n/2
1.4.2 删除算法
删除指定位置的元素:
int delete(int a[],int n,int k)
删除指定的元素:
int delete(int a[],int n,int x)
1.4.3 查找算法
无序查找(平均比较次数O(n)=n/2).程序设计基础内容程序设计方法与风格结构化程序设计面向对象的程序设计方法,对象、方法、属性及继承与多态性。.1 程序设计方法与风格程序设计方法结构化设计方法面向对象程序设计方法程序设计风格1.源程序文档符号命名:选择标符的名字注释(序言性和功能性注释)程序的视觉组织2.数据说明显式地说明一切变量数据说明的次序应该规范化便于查找变量(按顺序排列)对复杂数据结构应注释说明3语句的结构每条语句简单明了尽量不用或少用 GOTO语句尽量只采用 3种基本控制结构编程4输入和输出对所有输入数据进行校验和合理性检查输入输出格式保持一致设计良好的输出报表.2 结构化程序设计.2.1 基本自顶向下逐步求精模块化限制使用 goto语句基本结构顺序结构选择结构循环结构.2.3 设计原则方法顺序、选择和循环三种基本机构.3 面向对象的程序设计方法.3.1 关于面向对象方法.3.2 基本概念对象 (Object)对象是基本的运行时认得实体,它既包括数据(属性),也包括作用于数据的操作(行为)。一个对象把属性和行为封装为一个整体一个对象通常可由对象名、属性和操作 3部分组成面向对象 (Object Oriented,OO)从该问题所涉及的对象入手来研究问题。消息 (Message)对象之间进行通信的一种构造类 (Class)一个类定义了一组大体上相似的对象。
您可能关注的文档
最近下载
- 小学体育_队列队形教学设计学情分析教材分析课后反思.doc
- 中建项目商务策划汇报模板.pptx
- 公路中小跨径钢-混组合梁桥标准图集(制订)》技术方案报告.docx
- “设计思维与方法”教案.ppt
- 大职赛生涯闯关参考答案.docx VIP
- 2022《美宜佳公司营运资金管理存在的问题及对策研究》开题报告文献综述(含提纲)3200字.docx VIP
- 长垣市人民医院西学中培训班《方剂学》考试.pdf VIP
- 苏教版一年级科学上册4.1《自然物与人造物》(课件).pptx
- 电子商务招聘简章模板.pdf
- 统编版小学语文二年级上册第六单元 先辈伟人 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
文档评论(0)