ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:29.38KB ,
资源ID:2843123      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2843123.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构二维指针和数组还有数据结构.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构二维指针和数组还有数据结构.docx

1、数据结构二维指针和数组还有数据结构自己建立头文件格式 #include“text1.h”指针(指针变量)是用来存放变量的存储地址的*p=NULL;int a=3;例如:p=a; 结论:p=&a; *p=3;指针变量定义的格式:类型名*指针名最好采用int* p“*”(取值符号)后面加“地址”:表示取这个地址里的值“&”(地址符号)后面加“变量”:表示取这个变量的地址Void指针:通用指针他能指向各种类型的变量(但是调用时要加强制转化 格式为:(所需数据类型+“*”)指针名称例如:int a5=1,2,3,4,5; Int *p=NULL; P=a; p=&a0;*p=a0 P+1=&a0+1*

2、(p+1)=a0+1 注意取值时括号指针与二维数组:a34:看做是有三个长度为4的以为一维数组组成的。那么每一行的一维数组的数组名则分别为a0 a1 a2 首地址分别为a0 a1 a2注意:1.此时表示第一行第2个数值的地址表示为a0+1 数值表示为*(a0+1)2.第三行的第四个值的地址表示为a2+3 值表示为*(a2+3)在类中定义的函数体内,要对字符串或字符型赋值的时候要用strcpy(name,names) (将后面的传给前面的)不过之一要加上#include头文件若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用容量最大的顺序表存储方式最节省运算时间。

3、在索引顺序表中查找一个元素,可用的且最快的方法是用二分查找法确定元素所在块,再用顺序查找法在相应块中查找一个具有n个顶点的无向完全图的边数为n(n-1)/2当初始序列已经按键值有序,用直接插入算法对其进行排序,需要循环的次数为n-1二分查找要求被查找的表是键值有序的顺序表若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋元素,则采用顺序表存储方式最节省时间。设数组Data0.m作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为front=(front+1)%(m+1)双链表中至多只有一个结点的后继指针为空。对链表进行插入和删除操作时,不必移动

4、结点。栈可以作为实现程序设计语言过程调用时的一种数据结构。向二叉排序树插入一个新结点时,新结点一定成为二叉排序树的一个叶子结点。从逻辑结构上看,n维数组的每个元素均属于n个向量。计算机算法必须具备三大特性可执行性、确定性、有穷性一个从逻辑结构上看,n维数组的每个元素均属于n个向量。是问题求解步骤的描述在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 数据项是数据的最小单位健壮的算法不会因非法的输入数算法应该据而出现莫名其妙的状态。数据的物理结构包括 数据元素 的表示和 数据元素间关系 的表示。数据的逻辑结构是指 数据的组织形式,即数据元素之间逻辑关系的总体。而逻辑关

5、系是指数据元素之间的关联方式或称“邻接关系”。 。一个数据结构在计算机中 表示(又称映像) 称为存储结构。 数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”)数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。数据的运算是对数据定义的一组操作,运算是定义在逻辑结构上的,和存储结构无关,而运算的实现则是依赖于存储结构。若逻辑结构相同但存储结构不同,则为不同的数据结构。这样的说法对吗?举例说明之。答:逻辑结构相同但存储不同,可以是不同的数据结构。例如,线性表的逻辑结构属于线性结构,采用顺序存储结构为顺序表,而采用链式存储结构称为线性链表。数据

6、元素之间的关系在计算机中有几种表示方法(有几种存储结构)?各有什么特点?四种表示方法(1)顺序存储方式。数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。(2)链式存储方式。每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。指针反映数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。(3)索引存储方式。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有

7、静态和动态特性。(4)散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。在给定的逻辑结构及其存储表示上可以定义不同的运算集合,从而得到不同的数据结构。这样说法对吗?举例说明之。答:栈和队列的逻辑结构相同,其存储表示也可相同(顺序存储和链式存储),但由于其运算集合不同而成为不同的数据结构。评价好的算法有四个方面。一是算法的正确性;二是算法的易读性;三是算法的健壮性;四是算法的时空效率(运行)。在分析算法时间复杂度时,有时

8、需要估算基本操作的原操作,它是执行次数最多的一个操作,该操作重复执行的次数称为频度。线性表顺序存储结构的优点:存储密度大线性表采用顺序存储,便于进行插入和删除操作设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用带头结点的双循环链表最节省时间。若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用带头结点的双循环链表存储方式最节省运算时间。顺序存储结构的主要缺点是不利于插入或删除操作。为了很方便的插入和删除数据,可以使用双向链表存放数据。线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺

9、序存储结构中效率高。线性表有两种存储结构:一是顺序表,二是链表。链式存储结构一般说克服了顺序存储结构的三个弱点。首先,插入、删除不需移动元素,只修改指针,时间复杂度为O;其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受可用内存空间的限制。其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。第三章 栈和队列对于栈操作数据的原则是:后进先出用链接方式存储的队列时:1,入队时队尾向后移 2,出队时队首向后移栈和队列的区别:栈:先进后出,后进后出。队列:先进先出,后进后出。第四章 串注意: 1, “”:为空串 2, “ ”:长度为1的串 3, “a”:是一个字符

10、串 4, a:是一个字符串的长度是指串中所含字符的个数第6章 树和二叉树性质一:在二叉树的第i层上至多有2的(i-1)次方个结点(i=1)性质二:深度(高度)为k的二叉树至多有2的k次方减1个结点性质三:对任意一颗二叉树BT,如果其叶子结点个数为n,度为2的结点个数为m,那么n=m+1满二叉树:深度为k且有2的k次方减1个结点的二叉树完全二叉树:是深度为k的有n个结点的二叉树,如果其每个结点都与深度为k的满二叉树中编号从1至n的结点一一对应,则称为完全 二叉树二叉树只能先左边后右边二叉树的遍历(分为三种):1,先序遍历 DRLR=左子树 D=根结点 L=右结点 2,中序遍历 RDL 3,后序遍

11、历 RLD第六章 图 图:为多对多的逻辑结构注意:顶点的度=该顶点的入度+该顶点的出度第七章 查找查找分为三种:1,顺序查找 2,折半查找(类似于二分法) 3,分块查找在索引顺序表中查找一个元素,可用的且最快的方法是:用二分查找法确定元素所在块,再用顺序查找法在相应块中查找双链表中至多只有一个结点的后继指针为空对链表进行插入和删除操作时,不必移动结点栈可以作为实现程序设计语言过程调用时的一种数据结构。向二叉排序树插入一个新结点时,新结点一定成为二叉排序树的一个叶子结点。一, 顺序查找:最常用最简单的一种查找方法监视哨:从最后一个位置开始向前查找,并且下标为0的位置不存放有用的数据,而不是存放给

12、定的值,这个位置被称作监视哨。(当然也可以把监视哨放在最后,从前向后查找)二, 折半查找:是高效的查找方法(这种查找需要表中的数据都必须按关键字有序的排列且只能采取顺序存储结构)取中间值得公式:mid=(low+high)/2 “/”:是取整符号。三,分块查找:介于顺序查找和折半查找之间的一种折中的查找方法,它不要求表中所有记录有序,但要求表中记录分块有序(块与块之间是有序的) 分块查找先是找到所在块,接着只能进行顺序查找(因为不要求块中程序有序)第10章 排序怎么评价一个排序算法的好坏:1,对n个记录排序执行时间的长短; 2,排序是所需辅助存储空间大大小一, 插入排序(直接插入排序 希尔排序

13、)直接插入排序是一种稳定的排序方法基本思想:逐个按关键字的大小插入到一个已排序好的子序列中,知道全部记录插完为止。(整个过程当中有序性是保持不变的)操作步骤:1.先将一个元素插入 2.将接下来的每个元素先放到监视哨中将其与序列李的元素进行比较,直到找到比它大的将其放在这个元素的前面,如果没有比他大的那就放在比它小的数后面注意:没完成一次记录的插入称为一趟排序,该排序算法中要解决的主要问题是怎么样插入,要保证插入后序列仍然有序。 二, 折半插入排序基本思想:使用前面的折半查找算法。三,交换排序(冒泡排序 快速排序)重点的重点啊冒泡排序冒泡排序是一种简单的交换排序冒泡排序是一种稳定的排序方法基本思

14、想:是对排序序列的相邻记录的关键字进行比较,使较小关键字的记录往前移,而较大关键字记录向后移主程序如下:void maopao(RecData r,int n) int i,j,swap,t; for(i=0;in;+i) swap=0; for(j=1;jn-i;+j) if(rj+1.keyri.key) t=rj+1; rj+1=rj; rj=t; swap=1; if(!swap) return; 快速排序快速排序是对冒泡排序的一种改进总结如下(1)冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,

15、我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。(2)选择排序 选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n-1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。那么,在一趟选择,如果当前元素比一个元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了。比较拗口,举个例子,序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。(3)插入排序

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1