多做题,多反思、多总结.
1、绪论 1.1 在数据结构中,从逻辑上可以把数据结构分成()。A.动态结构和静态结构
B.紧凑结构和非紧凑结构
c.线性结构和非线性结构
D.内部结构和外部结构
答案:C
1.2 与数据元素本身的形式、内容、相对位置、个数无关的是数据的()A.存储结构
B.存储实现
C.逻辑结构
D.运算实现
答案:C
1.3 通常要求同—逻辑结构中的所有数据元素具有相同的特性,这意味着()A.数据具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C.每个数据元素都—样
D.数据元素所包含的数据项的个数要相等
答案:B
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
答案:D
A.问题的规模
B.待处理数据的初态
c.计算机的配置
D. A和B
答案:D
1.6 以下数据结构中,()是非线性数据结构。A.树
B.字符串
C.队列
D.栈
答案:A
A. 110
B.108
C. 100
D. 120
答案:B
A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n )
B.在第i个结点后插人一个新结点( 1≤i≤n )
C.删除第i个结点( 1≤i≤n)
D…将n个结点从小到大排序
答案:A
A. 8
B.63.5
C 63
D.7
答案:B
A.分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B.只有一部分,存放结点值
C. 只有一部分,存储表示结点间关系的指针
D.分两部分,一部分存放结点值,另一部分存放结点所占单元数
答案:A
A.必须是连续的
B.部分地址必须是连续的
C.一定是不连续的
D.连续或不连续都可以
答案:D
A.需经常修改L中的结点值
B.需不断对L进行删除、插入
C.L中含有大量的结点
D.L中结点结构复杂
答案:B
A.大于1
B.等于1
c.小于1
D.不能确定
答案:C
A. n
B. 2n -1
C. 2n
D. n- 1
答案:A
A. n- i
B. n-i+ 1
c. n-i- 1
D. i
答案:B
A.每个元素都有一个直接前驱和一个直接后继
B.线性表中至少有一个元素
c.表中诸元素的排列必须是由小到大或由大到小
D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直
接后继
答案:D
A. O(1)
B.O(n)
c. O(n^2)
D. O(nlogn)
答案:C
A.求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储
结构时实现的效率低
B.顺序存储的线性表可以随机存取
c.由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活
D.线性表的链式存储结构优于顺序存储结构
答案:D
A. s->next =p+l; p->next= s;
B.(*p).next= s; (*s).next=(*p).next;
C. s->next = p->next; p->next = s->next;
D. s->next =p->next; p->next= s;
答案:D
A. p->next->prior= p->prior;p->pri or->next= p->next;
B. p->next = p->next->next; p->next->prior= p;
c. p->prior->next= p; p->prior=p->prior->prior;
D. p->prior=p->next->next; p->next = p->prior->prior;
答案:A
A. p->next = q; q->prior = p; p->next->prior = q; q->next =q;
B. p->next= q; p->next->prior =q; q->prior=p; q->next= p->next;
C. q->prior = p; q->next= p->next; p->next->prior = q; p->next =q;
D. q->prior = p; q->next= p->next; p->next = q; p->next->prior =q;
答案:C
A. 5,4,3,2,1
B.2,1,5,4,3
C.4,3,1,2,5
D.2,3,5,4,1
答案:C
A. i
B. n-i
C. n-i+1
D.不确定
答案:C
A. r-f
B. (n+f-r)%n
C. n+r-f
D.( n+r-f)%n
答案:D
A. x=top->data;top=top->link; .
B.top=top->link;x=top->link;
C. x=top;top=top->link ;
D. x=top->link;
答案:A
int fact (int n)
83
{ //n大于等于0
if (n<=0) return l;
else return n*fact (n-1) ;}
则计算fact( n)需要调用该函数的次数为()。
A. n+1
B. n-1
C. n
D. n+2
答案:A
A.递归调用
B.函数调用
c.表达式求值
D.前三个选项都有
答案:D
A.队列
B.栈
C.线性表
D.有序表
答案:A
A.2e
B.3
C.4
D.6
答案:B
A. top++; V[top]=x;
B. V[top]=x; top++;
C. top–; V[top]=x;
D. V[top]x; top–;
答案:C
A.线性表的顺序存储结构
B.队列
C.线性表的链式存储结构
D.栈
答案:D
A.仅修改头指针
B.仅修改尾指针
C.头、尾指针都要修改
D.头、尾指针可能都要修改
答案:D
A. rear=rear+1
B. rear=( rear+)%( m l)
C. rear=( rear+1)%m
D. rear-( rear+1)%m+1)
答案:D
A. (rear)%n==front
B. rear==rot
c. rear+1==ront
D. ( rear-1)%n==front
答案:B
A.都是先进先出
B.都是先进后出
c.只允许在端点处插人和删除元素
D.没有共同点
答案:C
A.递归部分
B.终止条件和递归部分
C.迭代部分
D.终止条件和迭代部分
答案:B
- 数据结构是一门研究非数值计算程序设计中 *** 作对象,以及这些对象之间的关系和 *** 作的学科。
- 数据结构包括两个方面的内容:数据的逻辑结构和存储结构。同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。
- 逻辑结构是从具体问题抽象出来的数学模型,从逻辑关系上描述数据,它与数据的存储无关。根据数据元素之间关系的不同特性,通常有四类基本逻辑结构:集合结构、线性结构、树形结构和图状结构。
- 存储结构是逻辑结构在计算机中的存储表示,有两类存储结构:顺序存储结构和链式存储结构。
- 抽象数据类型是指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组 *** 作的总称,具体包括三部分:数据对象、数据对象上关系的集合,以及对数据对象的基本 *** 作的集合。
- 算法是为了解决某类问题而规定的一个有限长的 *** 作序列。算法具有五个特性:有穷性、确定性、可行性、输人和输出。一个算法的优劣应该从以下四方面来评价:正确性、可读性、健壮性和高效性。
- 算法分析的两个主要方面是分析算法的时间复杂度和空间复杂度,以考察算法的时间和空间效率。一般情况下,鉴于运算空间较为充足,故将算法的时间复杂度作为分析的重点。算法执行时间的数量级称为算法的渐近时间复杂度,T(n)=O(fn)),它表示随着问题规模n的增大,算法执行时间的增长率和frn)的增长率相同,简称时间复杂度。
- 学完本章后,要求掌握数据结构相关的基本概念,包括数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构等;重点掌握数据结构所含两个层次的具体含义及其相互关系;了解抽象数据类型的定义、表示与实现方法;了解算法的特性和评价标准;重点掌握算法时间复杂度的分析方法。
- 线性表的逻辑结构特性是指数据元素之间存在着线性关系,在计算机中表示这种关系的两类不同的存储结构是顺序存储结构(顺序表)和链式存储结构(链表)。
- 对于顺序表,元素存储的相邻位置反映出其逻辑上的线性关系,可借助数组来表示。给定数组的下标,便可以存取相应的元素,可称为随机存取结构。而对于链表,是依靠指针来反映其线性逻辑关系的,链表结点的存取都要从头指针开始,顺链而行,所以不属于随机存取结构,可称之为顺序存取结构。不同的特点使得顺序表和链表有不同的适用情况,表2.2分别从空间、时间和适用情况3方面对二者进行了比较。
- 学习完本章后,应熟练掌握顺序表和链表的查找、插人和删除算法、链表的创建算法,并能够设计出线性表应用的常用算法,比如线性表的合并等。要求能够从时间和空间复杂度的角度比较两种存储结构的不同特点及其适用场合,明确它们各自的优缺点。
- 栈是限定仅在表尾进行插人或删除的线性表,又称为后进先出的线性表。栈有两种存储表示,顺序表示(顺序栈)和链式表示(链栈)。栈的主要 *** 作是进栈和出栈,对于顺序栈的进栈和出栈 *** 作要注意判断栈满或栈空。
- 队列是一种先进先出的线性表。它只允许在表的一端进行插人,而在另—端删除元素。队列也有两种存储表示,顺序表示(循环队列)和链式表示(链队)。队列的主要 *** 作是进队和出队,对于顺序的循环队列的进队和出队 *** 作要注意判断队满或队空。凡是涉及队头或队尾指针的修改都要将其对MAXQSIZE求模。
- 栈和队列是在程序设计中被广泛使用的两种数据结构,其具体的应用场景都是与其表示方法和运算规则相互联系的。表3.3分别从逻辑结构、存储结构和运算规则3方面对二者进行了比较。
- 栈有一个重要应用是在程序设计语言中实现递归。递归是程序设计中最为重要的方法之一,递归程序结构清晰,形式简洁。但递归程序在执行时需要系统提供隐式的工作栈来保存调用过程中的参数、局部变量和返回地址,因此递归程序占用内存空间较多,运行效率较低。
- 学习完本章后,要求掌握栈和队列的特点,熟练掌握栈的顺序栈和链栈的进栈和出栈算法,循环队列和链队列的进队和出队算法。要求能够灵活运用栈和队列设计解决实际应用问题,掌握表达式求值算法,深刻理解递归算法执行过程中栈的状态变化过程,便于更好地使用递归算法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)