第2章线性表习题解析(答)

第2章线性表习题解析(答)
第2章线性表习题解析(答)

第二章线性表练习题

一、选择题

1.线性表是具有n个的有限序列。

A、表元素

B、字符

C、数据元素

D、数据项

E、信息项

2.线性表的静态链表存储结构与顺序存储结构相比优点是。

A、所有的操作算法实现简单

B、便于随机存储

C、便于插入和删除

D、便于利用零散的存储器空间

3.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度为。

A、O(log2n)

B、O(1)

C、O(n)

D、O(n2)

4.(1)静态链表既有顺序存储的特点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关;

(2)静态链表中能容纳元素个数的最大数在定义时就确定了,以后不能增加;(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

以上错误的是。

A、(1)、(2)

B、(1)

C、(1)、(2)、(3)

D、(2)

6.在双向链表存储结构中,删除p所指的结点时须修改指针。

A、p->next->prior=p->prior; p->prior->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;

7.在双向循环链表中,在P指针所指的结点后插入q所指向的新结点,其修改指针的操作是。

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->next=p->next;q->prior=p;p->next=q;p->next=q;

8.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。

A、 n b、2n-1 c、2n d、n-1

9.在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动个元素。

A、n-i

B、n-i+1

C、n-i-1

D、i

10.线性表L=(a1,a2,……an),下列说法正确的是。

A、每个元素有有一个直接前驱和一个直接后继

B、线性表中至少有一个元素

C、表中诸元素的排列必须是由小到大或由大到小。

D、除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。

11.对单链表表示法,以下说法错误的是。

A、数据域用于存储线性表的一个数据元素

B、指针域(或链域)用于存放一指向本结点所含数据元素的直接后继所在结点的指针

C、所有数据通过指针的链接而组织成单链表

D、NULL称为空指针,它不指向任何结点只起标志作用

12.若指定有n个元素的向量,则建立一个有序单向链表的时间复杂性的量级是。

A、O(1)

B、O(n)

C、O(n2)

D、O(nlog2n)

13.以下说法正确的是。

A、顺序存储方式的优点是存储密度大且插入、删除运算率高

B、链表的每个结点中都恰好包含一个指针

C、线性表的顺序存储结构优于链式存储结构

D、顺序存储结构属于静态结构而链式结构属于动态结构

14.以下说法错误的是。

A、对循环链表来说,从表中任一结点出发都能通过前后移操作扫描整个循环链表

B、对单链表来说,只有从头结点开始才能扫描表中全部结点

C、双链表的特点是找结点的前趋和后继都很容易

D、对双链中来说,结点*p的存储位置既存放在其前趋结点的后继指针域中,也存放在它的后继结点的前趋指针中

15.以下说法错误的是。

A、求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低

B、序存储的线性表可以随机存取

C、由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活

D、线性表的链式存储结构优于顺序存储结构

二、判断题

1.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。(错)

2.在具有头结点的链式存储结构中,头指针指向链表中的第一个数据结点。(错)

3.顺序存储的线性表可以随机存取。(对)

4.在单链表中,要访问某个结点,只要知道该结点的指针即可;因此,单链表是一种随机存储结构。(错)

5.在线性表的顺序存储结构中,插入和删除元素时,移动元素的个数与该元素的位置有关。(对)

6.顺序存储结构属于静态结构,链式结构属于动态结构。(对)

数据结构习题二线性表

一.选择题 1. 已知在单链表中指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作?( B ) A、s->next = p; p->next = s; B、s->next = p->next; p->next = s; C、s->next = p->next; p = s; D、p->next = s; s->next = p; 2. 非空的循环单链表first的尾结点(由p所指向)满足:( C ) A、 p->next == NULL; B、 p == NULL; C、 p->next == first; D、 p == first; 3. 在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)插入一个新元素时,需要从后向前依次后移___C___个元素。 A、n-i B、n-i-1 C、n-i+1 D、i 4. 线性表是具有n个__C____的有限序列。 A、表元素 B、字符 C、数据元素 D、数据项 5. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较___B___个结点。 A、 n B、n/2 C、(n-1)/2 D、(n+1)/2 6. 若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用___A___存储方式最节省运算时间。 A、单链表 B、双链表 C、单循环链表 D、带头结点的双循环链表 7. 已知L是无表头结点的单链表,且P结点既不是首元素结点,也不是尾元素结点。按要求从下列语句中选择合适的语句序列。 a.在P结点后插入S结点的语句序列是:__。 b.在P结点前插入S结点的语句序列是:。 c.在表首插入S结点的语句序列是:。 d.在表尾插入S结点的语句序列是:。 供选择的语句有: (1)P->next=S;(2)P->next=P->next->next; (3)P->next=S->next;(4)S->next=P->next; (5)S->next=L;(6)S->next=NULL;(7)Q=P; (8)while(P->next!=Q)P=P->next; (9)while(P->next!=NULL)P=P->next; (10)P=Q;(11)P=L;(12)L=S;(13)L=P; 二.填空题 1.在顺序表中插入或删除一个元素,需要平均移动________元素,具体移动的元素个数与_______有关。 2.在顺序表中,逻辑上相邻的元素,其物理位置________相邻。在单链表中,逻辑上相邻的元素,其物理位置__________相邻。 3.在带头结点的非空单链表中,头结点的存储位置由___________指示,首元素结点的存储位置由_________指示,除首元素结点外,其它任一元素结点的存储位置由_______指示。4.当对一个基本线性表进行的插入和删除操作较频繁时,基本线性表应采用存储结构;当对基本线性表的操作不会引起它的变化时,基本线性表应采用存储结构。 5.设某有一双链表,若要在指针q所指结点(中间结点)的后面插入一个新结点s,则需要执行下述语句段: s->prior=q;s->next=q->next;;q->next=s;

线性代数典型例题

线性代数 第一章 行列式 典型例题 一、利用行列式性质计算行列式 二、按行(列)展开公式求代数余子式 已知行列式412343 344 615671 12 2 D = =-,试求4142A A +与4344A A +. 三、利用多项式分解因式计算行列式 1.计算221 1231223131 5 1319x D x -= -. 2.设()x b c d b x c d f x b c x d b c d x = ,则方程()0f x =有根_______.x = 四、抽象行列式的计算或证明 1.设四阶矩阵234234[2,3,4,],[,2,3,4]A B αγγγβγγγ==,其中234,,,,αβγγγ均为四维列向量,且已知行列式||2,||3A B ==-,试计算行列式||.A B + 2.设A 为三阶方阵,*A 为A 的伴随矩阵,且1 ||2 A = ,试计算行列式1*(3)22.A A O O A -??-??? ?

3.设A 是n 阶(2)n ≥非零实矩阵,元素ij a 与其代数余子式ij A 相等,求行列式||.A 4.设矩阵210120001A ?? ??=?? ????,矩阵B 满足**2ABA BA E =+,则||_____.B = 5.设123,,ααα均为3维列向量,记矩阵 123123123123(,,),(,24,39)A B αααααααααααα==+++++ 如果||1A =,那么||_____.B = 五、n 阶行列式的计算 六、利用特征值计算行列式 1.若四阶矩阵A 与B 相似,矩阵A 的特征值为 1111 ,,,2345 ,则行列式1||________.B E --= 2.设A 为四阶矩阵,且满足|2|0E A +=,又已知A 的三个特征值分别为1,1,2-,试计算行列式*|23|.A E + 第二章 矩阵 典型例题 一、求逆矩阵 1.设,,A B A B +都是可逆矩阵,求:111().A B ---+

线性规划经典例题及详细解析

一、 已知线性约束条件,探求线性目标关系最值问题 1. 设变量x 、y 满足约束条件?? ???≥+-≥-≤-1122y x y x y x ,则y x z 32+=的最大值为 。 二、 已知线性约束条件,探求非线性目标关系最值问题 2. 已知1,10,220x x y x y ≥??-+≤??--≤? 则22x y +的最小值就是 。 3. 已知变量x,y 满足约束条件+201-70x y x x y -≤??≥??+≤? ,则 y x 的取值范围就是( )、 A 、 [95,6] B 、(-∞,95 ]∪[6,+∞) C 、(-∞,3]∪[6,+∞) D 、 [3,6] 三、 研究线性规划中的整点最优解问题 4. 某公司招收男职员x 名,女职员y 名,x 与y 须满足约束条件?? ???≤≥+-≥-.112,932,22115x y x y x 则1010z x y =+的最大值 就是 。 四、 已知最优解成立条件,探求目标函数参数范围问题 5. 已知变量x ,y 满足约束条件1422x y x y ≤+≤??-≤-≤? 。若目标函数z ax y =+(其中0a >)仅在点(3,1)处取得最大值,则a 的取值范围为 。 6. 已知x 、y 满足以下约束条件5503x y x y x +≥??-+≤??≤? ,使z=x+a y (a >0) 取得最小值的最优解有无数个,则a 的值为( ) A. -3 B 、 3 C 、 -1 D 、 1 五、 求可行域的面积 7. 不等式组260302x y x y y +-≥??+-≤??≤? 表示的平面区域的面积为 ( ) A. 4 B 、 1 C 、 5 D 、 无穷大

第二章线性表答案

第2章线性表 一选择题 1.下述哪一条是顺序存储结构的优点?( A ) A.存储密度大 B.插入运算方便 C.删除运算方 便 D.可方便地用于各种逻辑结构的存储表示 2.下面关于线性表的叙述中,错误的是哪一个?( B )A.线性表采用顺序存储,必须占用一片连续的存储单元。B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。D.线性表采用链接存储,便于插入和删除操作。 3.线性表是具有n个( C )的有限序列(n>0)。 A.表元素 B.字符 C.数据元 素 D.数据项 E.信息项 4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。 AHA12GAGGAGAGGAFFFFAFAF

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。 A.单链表 B.仅有头指针的单循环链 表 C.双链表D.仅有尾指针的单循环链表 6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。 A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( D )存储方式最节省运算时间。 AHA12GAGGAGAGGAFFFFAFAF

A.单链表 B.双链表 C.单循环链 表 D.带头结点的双循环链表 8. 静态链表中指针表示的是( BC ). A.内存地址 B.数组下标 C.下一元素地址D.左、右孩子地址 9. 链表不具有的特点是( C ) A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比 10. 下面的叙述不正确的是( BC ) A.线性表在链式存储时,查找第i个元素的时间同i的值成正比 AHA12GAGGAGAGGAFFFFAFAF

六种经典线性规划例题

线性规划常见题型及解法 求线性目标函数的取值范围 2 2 2 x y A D y 2 O x x=2 求可行域的面积 y y M 5 2 x y 2 y x y 2 x y 2 x y x (3,5] y =2 ( 13 例1 x+2y 时 6 的点 C 、 x , 个 y 6 y 3 2 x + y —3 = 0 C 、 5 A 、 4 B 、 1 D 、无穷大 () 0,将 有 最小值 故选A .B A --- 作出可行域如右图 点个数为13个,选D x + y =2 则z=x+2y 的取值范围是 () 旦y =2 0 0表示的平面区域的面积为 三、求可行域中整点个数 解:|x| + |y| <2等价于 解:如图,作出可行域,作直线I : I 向右上方平移,过点A ( 2,0 ) 2,过点B ( 2,2 )时,有最大值 [2,6] B 、[2 ,5] C 、[3,6] 解:如图,作出可行域,△ ABC 的面积即为所求,由梯形OMBC 的面积减去梯形OMAC 的 面积即可,选B 例 3、满足 |x| + |y| <2 A 、9 个 B 、10 个 由已知条件写出约束条件,并作出可行域,进而通过平移直线在可行域内求线性 目标函数的最优解是最常见的题型,除此之外,还有以下六类常见题型。 (x 0,y 0) (x 0,y p 0) (xp 0,y 0) (xp 0,y p 0) 是正方形内部(包括边界),容易得到整 y)中整点(横纵坐标都是整数)有() D 、 14 个 2x 例2、不等式组x x 若x 、y 满足约束条件 y O C V —? x 2x + y —6= 0

第2章线性表习题解答

第2章线性表习题解答

第2章习题 (2) 第2章习题 2.1若将顺序表中记录其长度的分量listlen改为指向最后一个元素的位置last,在实现各基本运算时需要做那些修改? 【解】 //用线性表最后一个元素的下标last代替listLen实现顺序表 #define MAXLEN 100 typedef int elementType; typedef struct sllLast { elementType data[MAXLEN]; int last; }seqList; //初始化 void initialList(seqList &S)

{ https://www.360docs.net/doc/024054613.html,st=-1; } //求表长度 int listLength(seqList S) { return https://www.360docs.net/doc/024054613.html,st+1; } //按序号取元素 bool getElement(seqList S,int i,elementType &x) { if(i<1 || i>https://www.360docs.net/doc/024054613.html,st+1) //i为元素编号,有效范围在https://www.360docs.net/doc/024054613.html,st+1之间 return false; else { x=S.data[i-1];

return true; } } //查找元素x,成功:返回元素编号;失败:返回0 int listLocate(seqList S,elementType x) { int i; for(i=0;i<=https://www.360docs.net/doc/024054613.html,st;i++) { if(S.data[i]==x) return i+1; //找到,转换为元素编号输出 } return 0; } //插入元素 int listInsert(seqList &S,elementType x, int i)

第2章线性表习题解析(答)

第二章线性表练习题 一、选择题 1.线性表是具有n个的有限序列。 A、表元素 B、字符 C、数据元素 D、数据项 E、信息项 2.线性表的静态链表存储结构与顺序存储结构相比优点是。 A、所有的操作算法实现简单 B、便于随机存储 C、便于插入和删除 D、便于利用零散的存储器空间 3.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度为。 A、O(log2n) B、O(1) C、O(n) D、O(n2) 4.(1)静态链表既有顺序存储的特点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关; (2)静态链表中能容纳元素个数的最大数在定义时就确定了,以后不能增加;(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。 以上错误的是。 A、(1)、(2) B、(1) C、(1)、(2)、(3) D、(2) 6.在双向链表存储结构中,删除p所指的结点时须修改指针。 A、p->next->prior=p->prior; p->prior->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;

7.在双向循环链表中,在P指针所指的结点后插入q所指向的新结点,其修改指针的操作是。 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->next=p->next;q->prior=p;p->next=q;p->next=q; 8.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。 A、 n b、2n-1 c、2n d、n-1 9.在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动个元素。 A、n-i B、n-i+1 C、n-i-1 D、i 10.线性表L=(a1,a2,……an),下列说法正确的是。 A、每个元素有有一个直接前驱和一个直接后继 B、线性表中至少有一个元素 C、表中诸元素的排列必须是由小到大或由大到小。 D、除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。 11.对单链表表示法,以下说法错误的是。 A、数据域用于存储线性表的一个数据元素 B、指针域(或链域)用于存放一指向本结点所含数据元素的直接后继所在结点的指针 C、所有数据通过指针的链接而组织成单链表 D、NULL称为空指针,它不指向任何结点只起标志作用

八种 经典线性规划例题(超实用)

线性规划常见题型及解法 由已知条件写出约束条件,并作出可行域,进而通过平移直线在可行域内求线性目标函数的最优解是最常见的题型,除此之外,还有以下六类常见题型。 一、求线性目标函数的取值范围 例1、若x、y满足约束条件 2 2 2 x y x y ≤ ? ? ≤ ? ?+≥ ? ,则z=x+2y的取值范围是() A、[2,6] B、[2,5] C、[3,6] D、(3,5] 解:如图,作出可行域,作直线l:x+2y=0,将l向右上方平移,过点A(2,0)时,有最小值2,过点B(2,2)时,有最大值6,故选 A 二、求可行域的面积 例2、不等式组 260 30 2 x y x y y +-≥ ? ? +-≤ ? ?≤ ? 表示的平面区域的面积为() A、4 B、1 C、5 D、无穷大 解:如图,作出可行域,△ABC的面积即为所求,由梯形OMBC 的面积减去梯形OMAC的面积即可,选 B 三、求可行域中整点个数 例3、满足|x|+|y|≤2的点(x,y)中整点(横纵坐标都是整数)有() A、9个 B、10个 C、13个 D、14个 解:|x|+|y|≤2等价于 2(0,0) 2(0,0) 2(0,0) 2(0,0) x y x y x y x y x y x y x y x y +≤≥≥ ? ?-≤≥ ? ? -+≤≥? ?--≤ ? 作出可行域如右图,是正方形内部(包括边界),容易得到整点个数为13个,选 D

四、求线性目标函数中参数的取值范围 例4、已知x、y满足以下约束条件 5 50 3 x y x y x +≥ ? ? -+≤ ? ?≤ ? ,使z=x+ay(a>0) 取得最小值的最优解有无数个,则a的值为() A、-3 B、3 C、-1 D、1 解:如图,作出可行域,作直线l:x+ay=0,要使目标函数z=x+ay(a>0)取得最小值的最优解有无数个,则将l向右上方平移后与直线x+y=5重合,故a=1,选 D 五、求非线性目标函数的最值 例5、已知x、y满足以下约束条件 220 240 330 x y x y x y +-≥ ? ? -+≥ ? ?--≤ ? ,则z=x2+y2的最大值和最小值分别是() A、13,1 B、13,2 C、13,4 5 D 、 解:如图,作出可行域,x2+y2是点(x,y)到原点的距离的平方,故最大值为点A(2,3)到原点的距离的平方,即|AO|2=13,最小值为原点到直线2x+y-2=0的距离的平方, 即为4 5 ,选 C 六、求约束条件中参数的取值范围 例6、已知|2x-y+m|<3表示的平面区域包含点(0,0)和(-1,1),则m的取值范围是() A、(-3,6) B、(0,6) C、(0,3) D、(-3,3) 解:|2x-y+m|<3等价于 230 230 x y m x y m -++>? ? -+- ? ? -< ? ,故0<m<3,选 C

(完整版)数据结构第二章线性表1答案

(A )需经常修改L 中的结点值 (E )需不断对L 进行删除插入 第二部分线性表 、选择题 1 ?关于顺序存储的叙述中,哪一条是不正确的 (B ) A. 存储密度大 B. 逻辑上相邻的结点物理上不必邻接 C. 可以通过计算直接确定第 i 个结点的位置 D. 插入、删除操作不方便 2.长度为n 的单链表连接在长度为 m 的单链表后的算法的时间复杂度为 (C ) A 0( n ) B 0(1) C 0(m ) D 0(m+n ) 3 .在n 个结点的顺序表中,算法的时间复杂度是 0(1)的操作是:(A ) A 访问第i 个结点(1<=i<=n )和求第i 个结点的直接前趋(2<=i<=n ) B 在第i 个结点(1<=i<=n )后插入一个新结点 C 删除第i 个结点(1<=i<=n ) D 将n 个结点从小到大排序 4.一个向量第一个兀素的存储地址是 100 ,每个兀素的长度为 2 ,则第5 个兀素的地址是 (B ) ( A ) 110 ( B ) 108 (C ) 100 ( D ) 120 5 .已知一个顺序存储的线性表, 设每个结点需要占 m 个存储单元,若第一个结点的地址为 da , 则第i 个结点的地址为:(A ) 7 .链表是一种采用( B )存储结构存储的线性表。 (A )顺序 (B )链式 (C )星式 (D )网状 8 .线性表若采用链式存储结构时,要求内存中可用存储单兀的地址: (D ) (A )必须是连续的 (B )部分地址必须是连续的 (C )一定是不连续的 (D )连续或不连续都可以 9 .线性表L 在_ ( B )情况下适用于使用链式结构实现。 A ) da+(i-1)*m B ) da+i*m 6.在具有n 个结点的单链表中,实现( A )遍历链表和求链表的第 i 个结点 C )删除开始结点 C ) da-i*m D ) da+(i+1)*m A )的操作,其算法的时间复杂度为 0(n )。 B )在地址为p 的结点之后插入一个结点 D ) 删除地址为p 的结点的后继结点

线性表练习题(答案)

第2章线性表 一选择题 下列程序段的时间复杂度为( C )。 for( int i=1;i<=n;i++) for( int j=1;j<= m; j++) A[i][j] = i*j ; A. O(m2) B. O(n2) C. O(m*n) D. (m+n) 下面关于线性表的叙述中,错误的是哪一个?(B ) A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 线性表是具有n个( C )的有限序列(n>0)。 A.表元素B.字符C.数据元素D.数据项 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。 A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。 A.单链表B.仅有头指针的单循环链表 C.双链表D.仅有尾指针的单循环链表 设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( D )存储方式最节省运算时间。 A.单链表B.双链表C.单循环链表D.带头结点的双循环链表 链表不具有的特点是( B ) A.插入、删除不需要移动元素B.可随机访问任一元素 C.不必事先估计存储空间D.所需空间与线性长度成正比 下面的叙述不正确的是(B,C ) A.线性表在链式存储时,查找第i个元素的时间同i的值成正比 B. 线性表在链式存储时,查找第i个元素的时间同i的值无关 C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比 D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( C )(1<=i<=n+1)。 A. O(0) B. O(1) C. O(n) D. O(n2) 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为(C )。 A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为( C )A.O(i)B.O(1)C.O(n)D.O(i-1) 循环链表H的尾结点P的特点是(A )。 A.P->next=H B.P->next= H->next C.P=H D.P=H->next 完成在双循环链表结点p之后插入s的操作是(D );

行列式经典例题

大学-----行列式经典例题 例1计算元素为a ij = | i -j |的n 阶行列式. 解 方法1 由题设知,11a =0,121a =,1,1,n a n =- ,故 01110212 n n n D n n --= -- 1,1,,2 i i r r i n n --=-= 01 1111 111 n ---- 1,,1 j n c c j n +=-= 121 1 021 (1)2(1)020 1 n n n n n n ------=---- 其中第一步用的是从最后一行起,逐行减前一行.第二步用的每列加第n 列. 方法2 01110 212 0n n n D n n --= -- 1 1,2,,111 1111 120 i i r r i n n n +-=----=-- 1 2,,100120 1231 j c c j n n n n +=---= --- =12(1)2(1) n n n ---- 例2. 设a , b , c 是互异的实数, 证明: 的充要条件是a + b + c =0. 证明: 考察范德蒙行列式:

= 行列式 即为y 2前的系数. 于是 = 所以 的充要条件是a + b + c = 0. 例3计算D n = 121 100010n n n x x a a a x a ----+ 解: 方法1 递推法 按第1列展开,有 D n = x D 1-n +(-1) 1 +n a n 1 1111n x x x ----- = x D 1-n + a n 由于D 1= x + a 1,221 1x D a x a -=+,于是D n = x D 1-n + a n =x (x D 2-n +a 1-n )+ a n =x 2 D 2-n + a 1-n x + a n = = x 1 -n D 1+ a 2x 2 -n + + a 1-n x + a n =111n n n n x a x a x a --++++ 方法2 第2列的x 倍,第3列的x 2 倍, ,第n 列的x 1 -n 倍分别加到第1列上 12 c xc n D += 21121 10010000n n n n x x x a xa a a x a -----++

高中数学线性规划经典题型

高考线性规划归类解析 一、平面区域和约束条件对应关系。 例1、已知双曲线224x y -=的两条渐近线与直线3x =围成一个三角形区域,表示该区域的不等式组是() (A)0003x y x y x -≥??+≥??≤≤? (B)0003x y x y x -≥?? +≤??≤≤? (C) 003x y x y x -≤?? +≤??≤≤? (D) 0003x y x y x -≤?? +≥??≤≤? 解析:双曲线224x y -=的两条渐近线方程为y x =±,与直线3x =围 成一个三角形区域(如图4所示)时有0 003x y x y x -≥?? +≥??≤≤? 。 点评:本题考查双曲线的渐近线方程以及线性规划问题。验证法或排除法是最效的方法。 例2:在平面直角坐标系中,不等式组20 200x y x y y +-≤??-+≥??≥? 表示的平面区域的面积是() (A)42 (B)4 (C) 22 (D)2 解析:如图6,作出可行域,易知不等式组20 200x y x y y +-≤??-+≥??≥? 表示的平面区域是一个三角形。容 易求三角形的三个顶点坐标为A(0,2),B(2,0),C(-2,0).于是三角形的面积为: 11 ||||42 4.22 S BC AO =?=??=从而选B。 点评:有关平面区域的面积问题,首先作出可行域,探求平面区域图形的性质;其次利用面积公式整体或部分求解是关键。 二、已知线性约束条件,探求线性截距——加减的形式(非线性距离——平方的形式,斜率——商的形式)目标关系最值问题(重点) 例3、设变量x 、y 满足约束条件?? ? ??≥+-≥-≤-1122y x y x y x ,则 ①y x 32+的最大值为 。(截距) 解析:如图1,画出可行域,得在直线 2x-y=2与直线x-y=-1 的交点A(3,4)处,目标函数z 最大值为18 点评:本题主要考查线性规划问题,由线性约束条件画出可行域,然后求出目标函数的最大值.,是一道较为简单的送分题。数形结合是数学思想的重要手段之一。 ②则2 2 x y +的最小值是 . ③1y x =+的取值范围是 . 图1

第二章线性表习题及答案

第二章线性表习题及答案 一、基础知识题 2.1 试描述头指针、头结点、开始结点的区别、并说明头指针和头结点的作用。 答:始结点是指链表中的第一个结点,也就是没有直接前趋的那个结点。 链表的头指针是一指向链表开始结点的指针(没有头结点时),单链表由头指针唯一确定,因此单链表可以用头指针的名字来命名。 头结点是我们人为地在链表的开始结点之前附加的一个结点。有了头结点之后,头指针指向头结点,不论链表否为空,头指针总是非空。而且头指针的设置使得对链表的第一个位置上的操作与在表其他位置上的操作一致(都是在某一结点之后)。 2.2 何时选用顺序表、何时选用链表作为线性表的存储结构为宜? 答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑: 1.基于空间的考虑。当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。 2.基于时间的考虑。若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。 2.3 在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素? 答:在等概率情况下,顺序表中插入一个结点需平均移动n/2个结点。删除一个结点需平均移动(n-1)/2个结点。具体的移动次数取决于顺序表的长度n以及需插入或删除的位置i。i 越接近n则所需移动的结点数越少。 2.4 为什么在单循环链表中设置尾指针比设置头指针更好? 答:尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next 和rear, 查找时间都是O(1)。 若用头指针来表示该链表,则查找终端结点的时间为O(n)。 2.5 在单链表、双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少? 答:我们分别讨论三种链表的情况。 1. 单链表。当我们知道指针p指向某结点时,能够根据该指针找到其直接后继,但是由于不知道其头指针,所以无法访问到p指针指向的结点的直接前趋。因此无法删去该结点。 2. 双链表。由于这样的链表提供双向链接,因此根据已知结点可以查找到其直接前趋和直接后继,从而可以删除该结点。其时间复杂度为O(1)。 3. 单循环链表。根据已知结点位置,我们可以直接得到其后相邻的结点位置(直接后继),又因为是循环链表,所以我们可以通过查找,得到p结点的直接前趋。因此可以删去p所指结点。其时间复杂度应为O(n)。 2.6 下述算法的功能是什么? LinkList Demo(LinkList L){ // L 是无头结点单链表 ListNode *Q,*P; if(L&&L->next){ Q=L;L=L->next;P=L;

线性表练习题答案

一、判断题 1.线性表的逻辑顺序与存储顺序总是一致的。(FALSE) 2.顺序存储的线性表可以按序号随机存取。(TRUE) 3.顺序表的插入和删除一个数据元素,每次操作平均只有近一半的元素需要移动。(TRUE) 4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。(TRUE) 5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。(FALSE) 6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。(TRUE)7.线性表的链式存储结构优于顺序存储结构。(FALSE) 8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。(TRUE) 9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。(TRUE)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。(FALSE) 二、单选题、(请从下列A,B,C,D选项中选择一项) 11.线性表是( ) 。 (A) 一个有限序列,可以为空;(B) 一个有限序列,不能为空; (C) 一个无限序列,可以为空;(D) 一个无序序列,不能为空。 答:A 12.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等 概率的。插入一个元素时平均要移动表中的()个元素。 (A) n/2 (B) (n+1)/2 (C) (n –1)/2 (D) n 答:A 13.线性表采用链式存储时,其地址( D ) 。 (A) 必须是连续的;(B) 部分地址必须是连续的; (C) 一定是不连续的;(D) 连续与否均可以。 答:D 14.用链表表示线性表的优点是()。 (A)便于随机存取 (B)花费的存储空间较顺序存储少 (C)便于插入和删除 (D)数据元素的物理顺序与逻辑顺序相同 答:C 15. 某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( )存储方式最节省运算时间。 (A)单链表 (B)双链表 (C)单循环链表

(完整版)线性代数重要知识点及典型例题答案

线性代数知识点总结 第一章 行列式 二三阶行列式 N 阶行列式:行列式中所有不同行、不同列的n 个元素的乘积的和 n n n nj j j j j j j j j n ij a a a a ...)1(21212121) ..(∑-= τ (奇偶)排列、逆序数、对换 行列式的性质:①行列式行列互换,其值不变。(转置行列式T D D =) ②行列式中某两行(列)互换,行列式变号。 推论:若行列式中某两行(列)对应元素相等,则行列式等于零。 ③常数k 乘以行列式的某一行(列),等于k 乘以此行列式。 推论:若行列式中两行(列)成比例,则行列式值为零; 推论:行列式中某一行(列)元素全为零,行列式为零。 ④行列式具有分行(列)可加性 ⑤将行列式某一行(列)的k 倍加到另一行(列)上,值不变 行列式依行(列)展开:余子式ij M 、代数余子式ij j i ij M A +-=)1( 定理:行列式中某一行的元素与另一行元素对应余子式乘积之和为零。 克莱姆法则: 非齐次线性方程组 :当系数行列式0≠D 时,有唯一解:)21(n j D D x j j ??==、 齐次线性方程组 :当系数行列式01≠=D 时,则只有零解 逆否:若方程组存在非零解,则D 等于零 特殊行列式: ①转置行列式:33 23133222123121 11333231232221 131211 a a a a a a a a a a a a a a a a a a → ②对称行列式:ji ij a a = ③反对称行列式:ji ij a a -= 奇数阶的反对称行列式值为零 ④三线性行列式:33 31 2221 13 1211 0a a a a a a a 方法:用221a k 把21a 化为零,。。化为三角形行列式 ⑤上(下)三角形行列式:

线性规划经典例题及详细解析

1 / 6 一、 已知线性约束条件,探求线性目标关系最值问题 1. 设变量x 、y 满足约束条件?? ? ??≥+-≥-≤-1122y x y x y x ,则y x z 32+=的最大值为 。 二、 已知线性约束条件,探求非线性目标关系最值问题 2. 已知1,10,220x x y x y ≥??-+≤??--≤? 则22 x y +的最小值是 。 3. 已知变量x ,y 满足约束条件+201-70x y x x y -≤?? ≥??+≤? ,则 错误! 的取值范围是( )。 A 。 [错误!,6] B.(-∞,错误!]∪[6,+∞) C.(-∞,3]∪[6,+∞) D 。 [3,6] 三、 研究线性规划中的整点最优解问题 4. 某公司招收男职员x 名,女职员y 名,x 和y 须满足约束条件?? ? ??≤≥+-≥-.112,932,22115x y x y x 则1010z x y =+的最大 值是 。 四、 已知最优解成立条件,探求目标函数参数范围问题 5. 已知变量x ,y 满足约束条件14 22x y x y ≤+≤?? -≤-≤? 。若目标函数z ax y =+(其中0a >)仅在点(3,1)处 取得最大值,则a 的取值范围为 。 6. 已知x 、y 满足以下约束条件5503x y x y x +≥?? -+≤??≤? ,使z=x+a y (a >0) 取得最小值的最优解有无数个,则a 的 值为( ) A. -3 B. 3 C 。 -1 D. 1 五、 求可行域的面积 7. 不等式组260302x y x y y +-≥?? +-≤??≤? 表示的平面区域的面积为 ( ) A. 4 B. 1 C. 5 D 。 无穷大

线性表例题

例1说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首元结点的关系。 答:在线性表的链式存储结构中,头指针是指指向链表的指针,若链表有头指针则是链表的头结点的指针,头指针具有标识作用,故常用头指针冠以链表的名字。头结点是为了操作的统一、方便而设立的,放在第一数据元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用作监视哨,等等),有了头结点后,对在第一数据元素结点前插入结点和删除第一结点,其操作与对其它结点的操作就统一了。而且无论链表是否为空,头指针均不为空。首元结点也就是第一数据元素结点,它是头结点后边的第一个结点。 例2 为什么在单循环链表中设置尾指针比设置头指针更好? 答:尾指针是指指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一个带头结点的单循环链表,其尾指针是rear,则开始结点和终端结点分别为指针rear所指结点的后继结点的后继结点和指针rear所指结点(利用C语言分别描述为rear->next->next和rear,利用标准Pascal语言分别描述为rear↑.next↑.next和rear),查找时间均为O(1)。若用头指针来表示该链表,则查找时间均为O(n)。 例3请分析含有n个结点的顺序表,在进行插入和删除操作时的时间复杂度,并对计算的结果进行分析,由此可得到线性表的适用范围的什么结论。 解:值得注意的是,插入操作是指在某个元素前面或后面插入,是针对位置的,因此可插入的位置为n+1个,而删除操作是删除线性表中某个位置上的元素,是针对元素的,因此可删除的元素为n个。 设p i为在第i个元素之前插入一个元素的概率,在等概率的条件下,其值为1/(n+1)。在第i个元素之前插入一个元素需要移动的元素的个数为:n-i+1。所以,在长度为n的线性表中插入一个元素所需要移动的元素次数的数学期望值(平均次数)为: E in=∑+ = + - 1 1 )1 ( n i i i n p=n/2 同理,设q i为删除第i个元素的概率,在等概率的条件下,其值为1/n。删除第i 个元素需要移动的元素的个数为:n-i。所以,在长度为n的线性表中删除一个元素所需要移动的元素次数的数学期望值(平均次数)为: E del=∑ =- n i i i n q 1 ) (=(n-1)/2 由于这两个操作的时间主要消耗在数据元素的移动上,所以插入算法和删除算法的时间复杂度均为:O(n)。 从上述分析可知,在顺序存储结构下,在线性表上插入或删除一个元素时需要平均移动线性表长度一半的元素个数,因此当n的值较大时,在顺序结构下,不宜对它频繁

第二章_线性表(参考答案)

第二章线性表 一、填空题 1、数据逻辑结构包括线性结构、树型结构、图型结构这三种类型,树形结构和图形结构合称为非线性结构。 2、在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有个前驱结点,最后一个结点没有后续结点,其余每个结点有且只有一个后续结点。 3、在顺序表中插入或删除一个元素,需要平均移动一半元素,具体移动的元素个数与插入或删除的位置有关。 4、在顺序表中,逻辑上相邻的元素,其物理位置一定相邻。在单链表中,逻辑上相邻的元素,其物理位置不一定相邻。 5、在带头结点的非空单链表中,头结点的存储位置由头指针指示,首元素结点的存储位置由头结点的next域指示,除首元素结点外,其它任一元素结点的存储位置由其直接前趋结点的next域指示。 6、阅读下列算法,并补充所缺内容。 void purge_linkst( ListNode *& la ) { // 从头指针为 la 的有序链表中删除所有值相同的多余元素,并释放被删结点空间ListNode *p,*q; if(la==NULL) return; q=la; p = la->link; while (p) { if (p && ___(1)p->data!=q->data___) {q=p; p = p->link;} else { q->link= ___(2)p->link___; delete(p); p=___(3)q->link___; } }//while }// purge_linkst 二、选择题 1、在数据结构中,从逻辑上可以把数据结构分成 C。 A、动态结构和静态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 2、线性表的逻辑顺序与存储顺序总是一致的,这种说法 B。 A、正确 B、不正确 3、线性表若采用链式存储结构时,要求内存中可用存储单元的地址D。 A、必须是连续的 B、部分地址必须是连续的 C、一定是不连续的 D、连续或不连续都可以 4、在以下的述叙中,正确的是B。 A、线性表的线性存储结构优于链表存储结构 B、二维数组是其数据元素为线性表的线性表 C、栈的操作是先进先出 D、队列的操作方式是先进后出 三、综合题 1、已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。 A、在P结点后插入S结点的语句序列是((4)、(1)); B、在P结点前插入S结点的语句序列是((7)、(11)、(8)、(4)、(1)); C、在表首插入S结点的语句序列是((5)、(12));

第2章线性表习题解答

第2章习题 (1) 第2章习题 2.1若将顺序表中记录其长度的分量listlen改为指向最后一个元素的位置last,在实现各基本运算时需要做那些修改? 【解】 //用线性表最后一个元素的下标last代替listLen实现顺序表 #define MAXLEN 100 typedef int elementType; typedef struct sllLast { elementType data[MAXLEN]; int last; }seqList; //初始化 void initialList(seqList &S) { https://www.360docs.net/doc/024054613.html,st=-1; } //求表长度 int listLength(seqList S) { return https://www.360docs.net/doc/024054613.html,st+1; } //按序号取元素 bool getElement(seqList S,int i,elementType &x) { if(i<1 || i>https://www.360docs.net/doc/024054613.html,st+1) //i为元素编号,有效范围在https://www.360docs.net/doc/024054613.html,st+1之间 return false; else { x=S.data[i-1]; return true; }

} //查找元素x,成功:返回元素编号;失败:返回0 int listLocate(seqList S,elementType x) { int i; for(i=0;i<=https://www.360docs.net/doc/024054613.html,st;i++) { if(S.data[i]==x) return i+1; //找到,转换为元素编号输出} return 0; } //插入元素 int listInsert(seqList &S,elementType x, int i) { int k; if(https://www.360docs.net/doc/024054613.html,st>MAXLEN-1) return 0; //表满,返回0 else if(i<1 || i>https://www.360docs.net/doc/024054613.html,st+2) return 1; //插入位置查处范围,返回1 else { for(k=https://www.360docs.net/doc/024054613.html,st;k>=i-1;k--) S.data[k+1]=S.data[k]; S.data[i-1]=x; https://www.360docs.net/doc/024054613.html,st++; return 2; } } //删除元素 int listDelete(seqList &S,int i) { int k; if(https://www.360docs.net/doc/024054613.html,st==-1) return 0; //空表,返回0 else if(i<1 || i>https://www.360docs.net/doc/024054613.html,st+1) return 1; //删除元素编号超出范围,返回1 else

相关文档
最新文档