数据结构与算法
mez_Blog
寸边而
展开
-
2020-10-24
可以用(D)定义一个完整的数据结构数据元素 数据对象 数据关系 抽象数据类型解析:抽象数据类型(ADT)描述了数据的逻辑结构和抽象运算,通常用数据对象,数据关系,基本操作集这样的三元组来表示,从而构成一个完整的数据结构定义。B项数据对象和C项数据关系都是ADT(抽象数据类型)三元组的一部分。A项数据元素是B项数据对象的一部分。数据项:一个数据元素由若干数据项组成数据元素:组成数据对象的基本单位数据对象:性质相同的数据元素的集合(类似于数组)以下数据结构中,(A)是非线性数据原创 2020-10-24 08:39:51 · 3767 阅读 · 0 评论 -
稀疏矩阵习题
已知一个6*5稀疏矩阵如下所示,(1)写出它的三元组顺序表(线性表);(2)给出三元组顺序表(线性表)的顺序存储表示。(2)行数 列数 非零元素个数 6 5 5 将在进行保存时,需要把矩阵中的行数,列数,非零元素个数,矩阵中的数据都保存在data数据域共同存储故得到下表6 5 5 1 5 1 3 2 -1 4 5 -2 5 1 5 6 3 7 ..原创 2020-07-28 10:44:38 · 6193 阅读 · 3 评论 -
数据结构与算法测试题
1.完全二叉树的第5层有9个节点,该完全二叉树总计有多少个节点( B).A.41 B.24 C.40 D.25完全二叉树,说明前四层都是满结点,第五层有九个结点,故有:2^4 -1=15 15+9=242.具有21个顶点的无向图至少有多少条边才能形成连通图 ( B).A.21 B.20 C.22 D.2103.假设以...原创 2019-12-21 15:26:55 · 4131 阅读 · 5 评论 -
数据结构习题整理(4.0)
42.试着写出一个判定给定二叉树是否为二叉排序树的算法。设此二叉树以二叉链表作存储结构,且树中结点的关键字均不同。int isbstree(bitree t)/*判断是否为二叉排序树*/{if(t->lchild && flag)isbstree(t->lchild);if(t->data.key<storenum)flag=0;//...原创 2019-12-18 20:34:23 · 3285 阅读 · 0 评论 -
数据结构排序习题
以关键字序列{503,087,512,061,908,170,897,275,653,426}为例,手工执行以下排序算法,写出每一趟排序结束时的关键字状态。(1)直接插入排序(2)希尔排序(增量序列为5,3,1)(3)快速排序...原创 2019-12-15 17:55:48 · 4658 阅读 · 3 评论 -
数据结构习题整理(3.0)
23.编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间24.编写算法,对一棵一孩子-兄弟链表表示的树统计其叶子的个数。typedef struct TreeNode{TreeNode *child;TreeNode *sibling;int data;}TreeNode;//这是用了递归的思想,需要仔细体会int Get...原创 2019-12-14 18:07:23 · 3652 阅读 · 3 评论 -
数据结构习题整理(2.0)
16.现有程序void pr(){scanf("%c",&ch) ;if (ch!='#') pr();printf("%c" ,ch) ;}写出输入为abc#时,调用pr函数的输出结果。17.试编写如下定义的递归函数的递归算法:g(m,n) = 0 当m=0,n>=0g(m,n) = g(m-1,2...原创 2019-12-09 10:25:33 · 6447 阅读 · 4 评论 -
数据结构习题整理(1.0)
1.描述以下三个概念的区别:头指针、头结点、首元素结点.头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针;头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志和表长等信息(内放头指针?那还得另配一个头指针!)首元素结点是指链表中存储线性表中第一个数据元素a1的结点.2.设计一个高效的算法。从顺序表L中删除所有介于x和y之间的所有元素,要求空间复杂度为O(1...原创 2019-12-08 11:24:35 · 3689 阅读 · 0 评论 -
哈希表习题
选取哈希函数H(k)=(3k)%11,用线性探测散列法和二次探测再散列法分别处理冲突。试在0~10的散列地址空间中,对关键字序列(22,41,53,46,30,13,01,67)构建哈希表,并求等概率情况下查找成功的平均查找长度。 线性探测...原创 2019-12-05 19:44:15 · 12152 阅读 · 2 评论 -
数据结构习题
1.在线性表中最常用的操作是存取第i个元素及其前驱的值,采用( A )存储方式最省时间。A.顺序表 B.带头结点的单链表 C.带头指针的双向循环链表 D.带头指针的单向循环链表2.在一个单链表中,已知z结点,若在z后插入j结点,则须执行( C )。A. z->next=j->n...原创 2019-11-30 19:52:44 · 5196 阅读 · 0 评论 -
哈夫曼编码习题
假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10请为这8个字母设计哈夫曼编码。表格形式:NO. data parent Lchild Rchild 0 0.07(A) 10 NULL NULL 1 0.19(B) 12 ...原创 2019-11-07 20:25:38 · 20837 阅读 · 18 评论 -
线性表的链式存储
链式存储是最常用的动态存储方法。为了克服顺序表的缺点,可以采用链式方式存储线性表。通常将采用链式存储结构的线性表称为线性链表。可以从两个角度来讨论线性链表:从链接方式的角度看,链表可分为单链表、循环链表和双链表。从实现角度看,链表可以分为动态链表和静态链表。单链表在顺序表中,用一组地址连续的存储单元来依次存放线性表的结点,因此结点的逻辑顺序和物理顺序是一致的。而链表则不然,链表是用一组任意...原创 2019-11-02 16:22:31 · 1935 阅读 · 0 评论 -
线性表的顺序存储
在计算机中主要有两种基本的存储结构用于存放线性表:顺序存储结构和链式存储结构。线性表的顺序存储结构线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在连续的物理存储单元中,即通过数据元素物理存储的连续性来反映数据元素之间逻辑上的相邻关系。采用顺序存储结构存储的线性表通常称为顺序表。可将顺序表归纳为:关系线性化,结点顺序存。...原创 2019-10-19 17:12:01 · 2931 阅读 · 0 评论 -
线性表
线性表的概念及其抽象数据类型定义线性表的逻辑结构线性表(LinearList)描述:线性表是n个类型相同数据元素的有限序列,对n>0,除第一元素无直接前驱、最后一个元素无直接后继外,其余的每个数据元素只有一个直接前驱和一个直接后继,数据元素之间具有一对一的关系。例如,英文字母表(A,B,……,Z)就是一个简单的线性表,表中的每一个英文字母就是一个数据元素,每个元素之间存在唯一的...原创 2019-10-16 15:35:04 · 3088 阅读 · 0 评论 -
数据结构的内容
数据结构是相互之间存在一种或多种特定关系的数据元素集合。这个描述是一种非常简单的解释。数据元素间的相互关系具体应包括三个方面:数据的逻辑结构、数据的存储结构和数据的运算集合。1.逻辑结构数据的逻辑结构是指数据元素之间逻辑关系描述。数据结构的形式定义为:数据结构是一个二元组Data_Structure(D,R)其中,D是数据元素的有限集,R是D上关系的有限集。例如:DS2...原创 2019-09-22 09:04:45 · 1833 阅读 · 0 评论 -
算法
著名的计算机科学家图灵奖获得者N.Wirth(沃思)教授给出了一个著名的公式:算法+数据结构=程序,这说明数据结构和算法是程序的两大要素,二者相辅相成,缺一不可。数据结构和算法之间存在着本质联系,在某一数据类型上,总要设计其上施加的运算,而只有通过对定义运算的研究,才能清楚地理解数据结构的定义和作用;在涉及运算问题时,总要与该算法所处理的对象和结果根据等联系起来进行考虑。在本门课程中将大量...原创 2019-09-22 17:35:05 · 812 阅读 · 0 评论 -
算法描述
1.算法、语言、程序的关系首先分析数据结构中算法、语言和程序的关系。(1)算法:描述数据对象之间的关系(包括数据逻辑关系、存储关系描述)。(2)描述算法的工具:算法可用自然语言、框图或高级程序设计语言进行描述。自然语言简单但易产生二义性;框图直观但不擅长表达数据的组织结构;而高级程序设计语言则较为准确、严谨,但因需考虑细节问题而显得相对繁琐。(3)程序是算法在计算机中的实现(与所用...原创 2019-09-23 08:02:06 · 10352 阅读 · 0 评论 -
算法性能评价
一种数据结构的优劣是由实现其各种运算的算法具体体现的,对数据结构的分析实质上就是实现运算算法的分析,除了要验证算法是否正确解决该问题之外,还需要对算法的效率作性能评价。在计算机程序设计中,算法分析是十分重要的。算法分析是每个程序设计人员应该掌握的技术。评价算法性能的标准主要从算法执行时间与占用内存空间两方面考虑,即算法执行所需的时间和存储空间来判断一个算法的优劣。1.性能评价对问题规模...原创 2019-09-24 10:43:33 · 6156 阅读 · 0 评论 -
数据结构与C语言表示(1.0)
数据结构与程序设计的关联性编写程序仅仅掌握语言是不够的,还必须掌握数据的组织、存储和运算方法。数据结构是积累程序设计经验的基础上形成的,是提高程序设计能力的基础和关键所在。下面解决一个简单的问题入手,说明数据结构与程序设计的关联性。【问题描述】 求一名学生10次C语言程序设计的测试成绩总分和平均分。这十次测验的成绩分别为80,85,77,56,68,83,90,92,80,98【程序...原创 2019-10-01 18:05:59 · 875 阅读 · 0 评论 -
数据结构与C语言表示(2.0)
参数传递示例#include <stdio.h>void swap1(int a,int b){int c;c=a;a=b;b=c;printf("swap1中的a=%d,b=%d",a,b);}void swap2(int *a,int *b){int c;c=*a,*a=*b,*b=c;}void main(){int x=10...原创 2019-10-07 15:57:04 · 500 阅读 · 0 评论 -
数据结构的基础概念
首先介绍数据结构的相关术语。1.数据(Data)数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。换句话说,数据是对客观事物采用计算机能够识别、存储和处理的形式所进行的描述。简而言之,数据就是计算机化的信息。数据的概念经历了与计算机发展相类似的发展过程。计算机一问世,数据作为程序的处理对象随之产生。早期计算机主要应用于数值计算,数据量小且结构简单,数据仅有进行算术运...原创 2019-09-21 19:32:11 · 297 阅读 · 0 评论