链表算法例题及练习

链表算法例题及练习
链表算法例题及练习

单链表算法练习(一)

上节课思考问题:

1、链表的特点是什么?

2、结点、数据域、指针域?

3、单链表、双链表、多链表、循环链表?

4、头指针、头结点?

5、在链表中设置头结点的好处?

算法1:创建单链表(头插法,课本算法2.11)

void CreateList(参数列表) Linklist &L, int n {第一步:开辟头结点,使其成为一个空单链表L=Malloc(sizeof(Lnode));

L->next=NULL;

第二步:依次创建新结点

For(i=n;i>0;i--)

开辟新结点

P=Malloc(sizeof(Lnode));

赋值

Scanf(&P->data);

使其成为后一结点

P->next=L->next;

插入到表头

L->next=p;

}

算法2:查找(返回第i个元素的值,课本算法2.8)

status GetElem_L(参数列表) LinkList L, int i, ElemType &e

{第一步:初始化,从第一个结点开始

P=L->next;

J=1;

第二步:顺序向后查找,直到表尾或找到第i个元素While(!p && j>i )

{P=p->next;

J++}

第三步:判断是否找到该元素(没有,返回ERROR;有,将其存放于指定元素)

If(!p || j>i) return ERROR;

E=p->data;

第四步:返回OK

return OK;

}

单链表思考练习题一:

1、用单链表结构来存放26个英文字母组成的线性表(a,b,c,…,z),请写出C语言程序。

难点分析:每个数据元素在内存中是“零散”存放的,其首地址怎么找?又怎么一一链接?

实现思路:先开辟头指针,然后陆续为每个数据元素开辟存储空间并赋值,并及时将地址送给前面的指针。

2、思考尾插法创建单链表的算法。

3、分析课本算法2.9和2.10。

尺寸链试题及答案

第十二章尺寸链 12-1填空: 1、零、部件或机器上若干首尾相接并形成封闭环图形的尺寸系统称为尺寸链。 2、尺寸链按应用场合分装配尺寸链零件尺寸链和工艺尺寸链。 3、尺寸链由封闭环和组成环构成。 4、组成环包含增环和减环。 5、封闭环的基本尺寸等于所有增环的基本尺寸之和减去所有减环的基本尺寸之和。 6、当所有的增环都是最大极限尺寸,而所有的减环都是最小极限尺寸,封闭环必为最大极限尺寸。 7、所有的增环下偏差之和减去所有减环上偏差之和,即为封闭环的下偏差。 8、封闭环公差等于所有组成环公差之和。 9、如图所示,若加工时以Ⅰ面为基准切割A2和A3,则尺寸A1 为封闭环;若以Ⅰ面为基准切割A1和A2,则尺寸A3 为封闭环。 10、“入体原则”的含义为:当组成环为包容尺寸时取下偏差为零。 12-2 选择题: 1、一个尺寸链至少由C 个尺寸组成,有A 个封闭环。 A、1 B、2 C、3 D、4 2、零件在加工过程中间接获得的尺寸称为 C 。 A、增环 B、减环 C、封闭环 D、组成环 3、封闭环的精度由尺寸链中 C 的精度确定。 A、所有增环 B、所有减环 C、其他各环 4、按“入体原则”确定各组成环极限偏差应A 。 A、向材料内分布 B、向材料外分布 C、对称分布 12-3 判断题: 1、当组成尺寸链的尺寸较多时,封闭环可有两个或两个以上。(×) 2、封闭环的最小极限尺寸等于所有组成环的最小极限尺寸之差。(×) 3、封闭环的公差值一定大于任何一个组成环的公差值. ( √) 4、在装配尺寸链中,封闭环时在装配过程中最后形成的一环,(√)也即为装配的 精度要求。(√) 5、尺寸链增环增大,封闭环增大(√),减环减小封闭环减小(×). 6、装配尺寸链每个独立尺寸的偏差都将将影响装配精度(√)。 四、简答题: 1、什么叫尺寸链它有何特点 答:在一个零件或一台机器的结构中,总有一些互相联系的尺寸,这些尺寸按一定顺序连接成一个封闭的尺寸组,称为尺寸链。 尺寸链具有如下特性: (1) 封闭性:组成尺寸链的各个尺寸按一定的顺序排列成封闭的形式。 (2) 相关性:其中一个尺寸的变动将会影响其它尺寸变动。 2、如何确定尺寸链的封闭环能不能说尺寸链中未知的环就是封闭环 答:装配尺寸链的封闭环往往是机器上有装配精度要求的尺寸,如保证机器可靠工作的相对位置尺寸或保证零件相对运动的间隙等。在建立尺寸链之前,必须查明在机器装配和验收的技术要求中规定的所有集合精度要求项目,这些项目往往就是这些尺寸链的封闭环。 零件尺寸链的封闭环应为公差等级要求最低的环,一般在零件图上不需要标注,以免引起加工中的混乱。 工艺尺寸链的封闭环是在加工中自然形成的,一般为被加工零件要求达到的设计尺寸或工艺过程中需要的尺寸。 不能说尺寸链中未知的环就是封闭环。 3、解算尺寸链主要为解决哪几类问题 答:解算尺寸链主要有以下三类任务: (1)正计算:已知各组成环的极限尺寸,求封闭环的极限尺寸。 (2)反计算:已知封闭环的极限尺寸和组成环的基本尺寸,求各组成环的极限偏差。

链表排序算法总结

这个星期做数据结构课设,涉及到两个基于链表的排序算法,分别是基于链表的选择排序算法和归并排序算法。写出来跟大家一起分享一下,希望对数据结构初学朋友有所帮助,高手就直接忽视它吧。话不多说,下面就看代码吧。 [c-sharp]view plaincopy 1.node *sorted(node *sub_root) 2.{ 3.if (sub_root->next) 4. { 5. node * second_half = NULL; 6. node * first_half = sub_root; 7. node * temp = sub_root->next->next; 8.while (temp) 9. { 10. first_half = first_half->next; 11. temp = temp->next; 12.if(temp) 13. temp = temp->next; 14. } 15. second_half = first_half->next; 16. first_half->next = NULL; 17. node * lChild = sorted(sub_root); 18. node * rChild = sorted(second_half); 19.if (lChild->data < rChild->data) 20. { 21. sub_root = temp = lChild; 22. lChild = lChild->next; 23. } 24.else 25. { 26. sub_root = temp = rChild; 27. rChild = rChild->next; 28. } 29.while (lChild&&rChild) 30. { 31.if (lChild->data < rChild->data ) 32. { 33. temp->next = lChild; 34. temp = temp->next; 35. lChild = lChild->next; 36. } 37.else 38. {

历年链表考题及答案

历年链表考题及答案 [2005秋II.14] 设已建立了两条单向链表,这两链表中的数据已按从小到大的次序排好,指针h1和h2分别指向这两条链表的首结点。链表上结点的数据结构如下: struct node{ int data; node *next; }; 以下函数node *Merge(node *h1, node *h2)的功能是将h1和h2指向的两条链表上的结点合并为一条链表,使得合并后的新链表上的数据仍然按升序排列,并返回新链表的首结点指针。 算法提示:首先,使newHead和q都指向首结点数据较小链表的首结点,p指向另一链表首结点。其次,合并p和q所指向的两条链表。在q不是指向链尾结点的情况下,如果q 的下一个结点数据小于p指向的结点数据,则q指向下一个结点;否则使p1指向q的下一个结点,将p指向的链表接到q所指向的结点之后,使q指向p所指向的结点,使p指向p1所指向的链表。直到p和q所指向的两条链表合并结束为止。注意,在合并链表的过程中,始终只有两条链表。 [函数] (4分) node * Merge(node *h1, node *h2) { node *newHead, *p, *p1; // 使newHead和q指向首结点数据较小链表的首结点,p指向另一链表首结点if( (27) ) { newHead=h1; p=h2; } // h1->datadata else { newHead=h2; p=h1; } node *q=newHead; // 合并两条链表 while( q->next) { if( q->next->data < p->data ) (28) ; // q=q->next else { (29) ; // p1=q->next q->next=p; q=p; p=p1; } } q->next=p; (30) ; // return newNead } [2005春II.11] 设已建立一条单向链表,指针head指向该链表的首结点。结点的数据结构如下: struct Node{ int data; Node *next; }; 以下函数sort(Node *head)的功能是:将head所指向链表上各结点的数据按data值从小

宏观经济学思考题及参考答案

宏观经济学思考题及参考答案(1) 第四章 基本概念:潜在GDP,总供给,总需求,AS曲线,AD曲线。 思考题 1、宏观经济学的主要目标是什么?写出每个主要目标的简短定义。请详细解释 为什么每一个目标都十分重要。 答:宏观经济学目标主要有四个:充分就业、物价稳定、经济增长和国际收支平衡。 (1)充分就业的本义是指所有资源得到充分利用,目前主要用人力资源作为充分就业的标准;充分就业本不是指百分之百的就业,一般地说充分就业允许的失业范畴为4%。只有经济实现了充分就业,一国经济才能生产出潜在的GDP,从而使一国拥有更多的收入用于提高一国的福利水平。 (2)物价稳定,即把通胀率维持在低而稳定的水平上。物价稳定是指一般物价水平(即总物价水平)的稳定;物价稳定并不是指通货膨胀率为零的状态,而是维持一种能为社会所接受的低而稳定的通货膨胀率的经济状态,一般指通货膨胀率为百分之十以下。物价稳定可以防止经济的剧烈波动,防止各种扭曲对经济造成负面影响。 (3)经济增长是指保持合意的经济增长率。经济增长是指单纯的生产增长,经济增长率并不是越高越好,经济增长的同时必须带来经济发展;经济增长率一般是用实际国民生产总值的年平均增长率来衡量的。只有经济不断的增长,才能满足人类无限的欲望。 (4)国际收支平衡是指国际收支既无赤字又无盈余的状态。国际收支平衡是一国对外经济目标,必须注意和国内目标的配合使用;正确处理国内目标与国际目标的矛盾。在开放经济下,一国与他国来往日益密切,保持国际收支的基本平衡,才能使一国避免受到他国经济波动带来的负面影响。 3,题略 答:a.石油价格大幅度上涨,作为一种不利的供给冲击,将会使增加企业的生产成本,从而使总供给减少,总供给曲线AS将向左上方移动。 b.一项削减国防开支的裁军协议,而与此同时,政府没有采取减税或者增加政府支出的政策,则将减少一国的总需求水平,从而使总需求曲线AD向左下方移动。 c.潜在产出水平的增加,将有效提高一国所能生产出的商品和劳务水平,从而使总供给曲线AS向右下方移动。 d.放松银根使得利率降低,这将有效刺激经济中的投资需求等,从而使总需求增加,总需求曲线AD向右上方移动。 第五章 基本概念:GDP,名义GDP,实际GDP,NDP,DI,CPI,PPI。 思考题: 5.为什么下列各项不被计入美国的GDP之中? a优秀的厨师在自己家里烹制膳食; b购买一块土地; c购买一幅伦勃朗的绘画真品; d某人在2009年播放一张2005年录制的CD所获得的价值; e电力公司排放的污染物对房屋和庄稼的损害;

倒置单链表的算法

倒置单链表的算法 void pur_LinkList(LinkList H) { LNode *p,*q,*r; p=H->next; /*p指向第一个结点*/ if(p==NULL) return; while (p->next) { q=p; while (q->next) /* 从*p的后继开始找重复结点*/ { if (q->next->data==p->data) { r=q->next; /*找到重复结点,用r指向,删除*r */ q->next=r->next; free(r); } /*if*/ else q=q->next; } /*while(q->next)*/ p=p->next; /*p指向下一个,继续*/ } /*while(p->next)*/ } ―――――――――――――――――――――――――――――――――――――status LinkListReverse(LinkList L) /*对单链表中的元素倒置*/ { int a[N] ,i=0,count=0; LinkList Lb; Node *p,*q; p=L->next; while(p!=NULL) { a[i++]=p->data; p=p->next; count++; } ―――――――――――――――――――――――――――――――― 2.21 void reverse(SqList &A)//顺序表的就地逆置 { for(i=1,j=A.length;iA.elem[j]; }//reverse 2.22 void LinkList_reverse(Linklist &L)//链表的就地逆置;为简化算法,假设表长大于2 {

线性表练习题(答案)

第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 );

(完整版)思考题及习题2参考答案

第2章思考题及习题2参考答案 一、填空 1. 在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为。答:2μs 2. AT89S51单片机的机器周期等于个时钟振荡周期。答:12 3. 内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为 和。答:28H,88H 4. 片内字节地址为2AH单元最低位的位地址是;片内字节地址为A8H单元的最低位的位地址为。答:50H,A8H 5. 若A中的内容为63H,那么,P标志位的值为。答:0 6. AT89S51单片机复位后,R4所对应的存储单元的地址为,因上电时PSW= 。这时当前的工作寄存器区是组工作寄存器区。答:04H,00H,0。 7. 内部RAM中,可作为工作寄存器区的单元地址为 H~ H。答:00H,1FH 8. 通过堆栈操作实现子程序调用时,首先要把的内容入栈,以进行断点保护。调用子程序返回指令时,再进行出栈保护,把保护的断点送回到,先弹出的是原来中的内容。答:PC, PC,PCH 9. AT89S51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89S51单片机的PC是16位的,因此其寻址的范围为 KB。答:64 10. AT89S51单片机复位时,P0~P3口的各引脚为电平。答:高 11. AT89S51单片机使用片外振荡器作为时钟信号时,引脚XTAL1接,引脚XTAL2的接法是。答:片外振荡器的输出信号,悬空 12. AT89S51单片机复位时,堆栈指针SP中的内容为,程序指针PC中的内容为 。答:07H,0000H 二、单选 1. 程序在运行中,当前PC的值是。 A.当前正在执行指令的前一条指令的地址 B.当前正在执行指令的地址。 C.当前正在执行指令的下一条指令的首地址 D.控制器中指令寄存器的地址。 答:C 2. 判断下列哪一种说法是正确的?

实现单链表的各种基本运算

实现单链表的各种基本运算 一、实验目的 了解单链表表的结构特点及有关概念,掌握单链表的各种基本操作算法思想及其实现。 二、实验内容 编写一个程序,实现顺序表的各种基本运算: 1、初始化单链表; 2、单链表的插入; 3、单链表的输出; 4、求单链表的长度 5、判断单链表是否为空; 6、输出单链表的第i位置的元素; 7、在单链表中查找一个给定元素在表中的位置; 8、单链表的删除; 9、释放单链表 三、算法思想与算法描述简图

主函数main void InitList(LinkList*&L) 初始化单链表L void DestroyList(LinkList*&L)//释放单链表L int ListEmpty(LinkList*L)//判断单链表L是否为空集 int Listlength(LinkList*L)//返回单链表L的元素个数 void DispList(LinkListt*L)//输出单链表L int GetElem(LinkList*L,int i,char e)/*ElemType e)获 取单链表L中的第i个元素*/ int LocateEmpty(LinkList*L,char e)/*ElemType e)在单 链表L中查找元素e*/ int ListInsert(LinkList*&L,int i,char e)/*ElemType e) 在单链表中第i个位置上插入元素e*/ int ListDelete(LinkList*&L,int i,char &e)/*ElemType e)在单链表L中删除第i个元素*/

四、实验步骤与算法实现 #include #include typedef char ElemType; typedef struct LNode//定义单链表 { ElemType data; struct LNode *next; }LinkList; void InitList(LinkList*&L) { L=(LinkList*)malloc(sizeof(LinkList));//创建头结点 L->next=NULL;//头结点赋值为空 } void DestroyList(LinkList*&L)//销毁单链表(释放单链表L占用的内存空间即逐一释放全部结点的空间) { LinkList*p=L,*q=p->next; while(q!=NULL) {free(p); p=q; q=p->next;} free(p); } int ListEmpty(LinkList*L)//判线性表是否为空表ListEmpty(L) { return(L->next==NULL);}//若单链表L没有数据结点,则返回真,否则返回假。 int ListLength(LinkList*L)//求线性表的长度ListLength(L) { LinkList*p=L;int i=0; while(p->next!=NULL)

(完整版)第三章单链表题目和答案

第2章自测卷答案 一、填空 1.顺序表中逻辑上相邻的元素的物理位置相互相邻。单链表中逻辑上相邻的元素的物理位置不 相邻。 2.在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点值域指示。 3.在n个结点的单链表中要删除已知结点*p,需找到它的地址。 二、判断正误(在正确的说法后面打勾,反之打叉) 1. 链表的每个结点中都恰好包含一个指针。X 2. 链表的物理存储结构具有同链表一样的顺序。X 3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。 X 4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。Y 5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。Y 6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。X 7. 线性表在物理存储空间中也一定是连续的。X 8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。X 9. 顺序存储方式只能用于存储线性结构。X 10. 线性表的逻辑顺序与存储顺序总是一致的。X 三、单项选择题 (A)1. 链接存储的存储结构所占存储空间: (A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 (B)只有一部分,存放结点值 (C)只有一部分,存储表示结点间关系的指针 (D)分两部分,一部分存放结点值,另一部分存放结点所占单元数 (B)2. 链表是一种采用存储结构存储的线性表; (A)顺序(B)链式(C)星式(D)网状 (D)3. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址: (A)必须是连续的(B)部分地址必须是连续的 (C)一定是不连续的(D)连续或不连续都可以 (B)4.线性表L在情况下适用于使用链式结构实现。 (A)需经常修改L中的结点值(B)需不断对L进行删除插入 (C)L中含有大量的结点(D)L中结点结构复杂 (C)5.单链表的存储密度 (A)大于1;(B)等于1;(C)小于1;(D)不能确定

思考题与习题答案

思考题与习题 1 1- 1 回答以下问题: ( 1)半导体材料具有哪些主要特性? (2) 分析杂质半导体中多数载流子和少数载流子的来源; (3) P 型半导体中空穴的数量远多于自由电子, N 型半 导体中自由电子的数量远多于空穴, 为什么它们对外却都呈电中性? (4) 已知温度为15C 时,PN 结的反向饱和电流 I s 10 A 。当温度为35 C 时,该PN 结 的反向饱和 电流I s 大约为多大? ( 5)试比较二极管在 Q 点处直流电阻和交流电阻的大小。 解: ( 1)半导体的导电能力会随着温度、光照的变化或掺入杂质浓度的多少而发生显着改变, 即半导体具 有热敏特性、光敏特性和掺杂特性。 ( 2)杂质半导体中的多数载流子是由杂质原子提供的,例如 供一个自由电子,P 型半导体中一个杂质原子提供一个空穴, 浓度;少数载流子则是由热激发产生的。 (3) 尽管P 型半导体中空穴浓度远大于自由电子浓度,但 P 型半导体中,掺杂的杂质原子因获得一个价电子而变成带负电的杂 质离子(但不能移动),价 电子离开后的空位变成了空穴,两者的电量相互抵消,杂质半导体从总体上来说仍是电中性的。 同理, N 型半导体中虽然自由电子浓度远大于空穴浓度,但 N 型半导体也是电中性的。 (4) 由于温度每升高10 C ,PN 结的反向饱和电流约增大 1倍,因此温度为 35C 时,反向 饱和电流为 (5) 二极管在 Q 点处的直流电阻为 交流电阻为 式中U D 为二极管两端的直流电压, U D U on ,I D 为二极管上流过的直流电流, U T 为温度的 电压当量,常温下 U T 26mV ,可见 r d R D 。 1- 2 理想二极管组成的电路如题 1- 2图所示。试判断图中二极管是导通还是截止,并确定 各电路的输 出电压。 解 理想二极管导通时的正向压降为零, 截止时的反向电流为零。 本题应首先判断二极管的工 作状 态,再进一步求解输出电压。二极管工作状态的一般判断方法是:断开二极管, 求解其端口 电压;若该电压使二极管正偏, 则导通; 若反偏, 则截止。 当电路中有两只或两只以上二极管时, 可分别应用该方法判断每只二极管的工作状态。 需要注意的是, 当多只二极管的阳极相连 (共阳 极接法)时,阴极电位最低的管子将优先导通;同理,当多只二极管的阴极相连(共阴极接法) 时,阳极电位最高的管子将优先导通。 (a) 断开二极管 D ,阳极电位为12V ,阴极电位为6V ,故导通。输岀电压 U O 12V 。 (b) 断开二极管 D 1、D 2, D 1、D 2为共阴极接法,其阴极电位均为 6V ,而D 1的阳极电位 为9V , D 2的阳极电位为5V ,故D 1优先导通,将 D 2的阴极电位钳制在 7.5V ,D 2因反向偏置而 截止。输岀电压 U O 7.5V 。 N 型半导体中一个杂质原子提 因此 多子浓度约等于所掺入的杂质 P 型半导体本身不带电。因为在

图练习题(答案)

《图》练习题 一、单项选择题 1、在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的度 数之和为( )。 A. s B. s-1 C. s+1 D. 2s 2、在一个具有n个顶点的无向完全图中,所含的边数为( )。 A. n B. n(n-1) C. n(n-1)/2 D. n(n+1)/2 3、在一个无向图中,若两顶点之间的路径长度为k,则该路径上的顶点数为( )。 A. k B. k+1 C. k+2 D. 2k 4、对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为( )。 A. 0 B. 1 C. n D. n+1 5、若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则 必须调用( )次深度优先搜索遍历的算法。 A. k B. 1 C. k-1 D. k+1 6、若要把n个顶点连接为一个连通图,则至少需要( )条边。 A. n B. n+1 C. n-1 D. 2n 7、在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为 有效元素)的个数为( )。 A. n B. n e C. e D. 2e 8、在一个具有n个顶点和e条边的有向图的邻接矩阵中,表示边存在的元素个数为 ( )。 A. n B. n e C. e D. 2 e 9、在一个有向图的邻接表中,每个顶点单链表中结点的个数等于该顶点的( )。 A. 出边数 B. 入边数 C. 度数 D. 度数减1 10、若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对 该图进行深度优先搜索,得到的顶点序列可能为( )。 A. A,B,C,F,D,E B. A,C,F,D,E,B C. A,B,D,C,F,E D. A,B,D,F,E,C 11、若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对 该图进行广度优先搜索,得到的顶点序列可能为( )。 A. A,B,C,D,E,F B. A,B,C,F,D,E C. A,B,D,C,E,F D. A,C,B,F,D,E 12、若如下图所示的无向连通图,则从顶点A开始对该图进行广度优先遍历,得到的顶 点序列可能为( )。

管理学思考题及参考答案

管理学思考题及参考答案 第一章 1、什么是管理? 管理:协调工作活动过程(即职能),以便能够有效率和有效果地同别人一起或通过别人实现组织的目标。 2、效率与效果 效率:正确地做事(如何做) 效果:做正确的事(该不该做) 3、管理者三层次 高层管理者、中层管理者、基层管理者 4、管理职能和(或)过程——职能论 计划、组织、控制、领导 5、管理角色——角色论 人际角色:挂名首脑、领导人、联络人 信息角色:监督者、传播者、发言人 决策角色:企业家、混乱驾驭者、资源分配者、谈判者 6、管理技能——技能论 用图表达。 高层管理概念技能最重要,中层管理3种技能都需要且较平衡,基层管理技术技能最重要。 7、组织三特征? 明确的目的 精细的结构 合适的人员 第二章 泰罗的三大实验: 泰罗是科学管理之父。记住3个实验的名称:1、搬运生铁实验,2、铁锹实验,3、高速钢实验 4、吉尔布雷斯夫妇 动作研究之父 管理界中的居里夫妇 5、法约尔的十四原则 法约尔是管理过程理论之父 记住“十四原则”这个名称就可以了。 6、法约尔的“跳板” 图。 7、韦伯理想的官僚行政组织组织理论之父。6维度:劳动分工、权威等级、正式甄选、非个人的、正式规则、职业生涯导向。 8、韦伯的3种权力 超凡的权力 传统的权力 法定的权力。 9、巴纳德的协作系统论 协作意愿 共同目标 信息沟通 10、罗伯特·欧文的人事管理 人事管理之父。职业经理人的先驱 11、福莱特冲突论 管理理论之母 1)利益结合、 2)一方自愿退让、 3)斗争、战胜另一方 4)妥协。 12、霍桑试验 1924-1932年、梅奥 照明试验、继电器试验、大规模访谈、接线试验 13、朱兰的质量观 质量是一种合用性 14、80/20的法则 多数,它们只能造成少许的影响;少数,它们造成主要的、重大的影响。 15、五项修炼 自我超越 改善心智 共同愿景 团队学习 系统思考 第三章 1、管理万能论 管理者对组织的成败负有直接责任。 2、管理象征论 是外部力量,而不是管理,决定成果。 3、何为组织文化 组织成员共有的价值观和信念体系。这一体系在很大程度上决定成员的行为方式。 4、组织文化七维度

数据结构复习题及答案

复习题(一) 一.填空题(每空1分,共15分) 1.一个算法的效率可分为___________________效率和___________________效率。 2.__________________是被限定为只能在表的一端进行插入运算,在表的另一端 进行删除运算的线性表。 3.设S=“A;/document/Mary.doc”,则strlen(S)= _______________,“/”的字符定位 的位置为_______________。 4.设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列 序为主序顺序存储,则元素a[32,58]的存储地址为_______________。 5.一棵深度为6的满二叉树有_______________个分支结点和_______________个 叶子。 6.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度 是。 7.设有一稀疏图G,则G采用存储较省空间。 8.快速排序算法是对算法的一种改进。 9.在数据的存放无规律而言的线性表中进行检索的最佳方法 是。 10.大多数排序算法都有两个基本的操作: 和。 11.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重 新排列,则:快速排序一趟扫描的结果是。 二.选择题(每题2分,共30分) ()1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: (A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构 ()2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要

第1章思考题及参考答案

第一章思考题及参考答案 1. 无多余约束几何不变体系简单组成规则间有何关系? 答:最基本的三角形规则,其间关系可用下图说明: 图a 为三刚片三铰不共线情况。图b 为III 刚片改成链杆,两刚片一铰一杆不共线情况。图c 为I 、II 刚片间的铰改成两链杆(虚铰),两刚片三杆不全部平行、不交于一点的情况。图d 为三个实铰均改成两链杆(虚铰),变成三刚片每两刚片间用一虚铰相连、三虚铰不共线的情况。图e 为将I 、III 看成二元体,减二元体所成的情况。 2.实铰与虚铰有何差别? 答:从瞬间转动效应来说,实铰和虚铰是一样的。但是实铰的转动中心是不变的,而虚铰转动中心为瞬间的链杆交点,产生转动后瞬时转动中心是要变化的,也即“铰”的位置实铰不变,虚铰要发生变化。 3.试举例说明瞬变体系不能作为结构的原因。接近瞬变的体系是否可作为结构? 答:如图所示AC 、CB 与大地三刚片由A 、B 、C 三铰彼此相连,因为三铰共线,体系瞬变。设该 体系受图示荷载P F 作用,体系C 点发生微小位移 δ,AC 、CB 分别转过微小角度α和β。微小位移 后三铰不再共线变成几何不变体系,在变形后的位置体系能平衡外荷P F ,取隔离体如图所 示,则列投影平衡方程可得 210 cos cos 0x F T T βα=?=∑,21P 0 sin sin y F T T F βα=+=∑ 由于位移δ非常小,因此cos cos 1βα≈≈,sin , sin ββαα≈≈,将此代入上式可得 21T T T ≈=,()P P F T F T βαβα +==?∞+, 由此可见,瞬变体系受荷作用后将产生巨大的内力,没有材料可以经受巨大内力而不破坏,因而瞬变体系不能作为结构。由上分析可见,虽三铰不共线,但当体系接近瞬变时,一样将产生巨大内力,因此也不能作为结构使用。 4.平面体系几何组成特征与其静力特征间关系如何? 答:无多余约束几何不变体系?静定结构(仅用平衡条件就能分析受力) 有多余约束几何不变体系?超静定结构(仅用平衡条件不能全部解决受力分析) 瞬变体系?受小的外力作用,瞬时可导致某些杆无穷大的内力 常变体系?除特定外力作用外,不能平衡 5. 系计算自由度有何作用? 答:当W >0时,可确定体系一定可变;当W <0且不可变时,可确定第4章超静定次数;W =0又不能用简单规则分析时,可用第2章零载法分析体系可变性。 6.作平面体系组成分析的基本思路、步骤如何? 答:分析的基本思路是先设法化简,找刚片看能用什么规则分析。

尺寸链计算(带实例)

尺 寸 链 的 计 算 一、尺寸链的基本术语: 1.尺寸链——在机器装配或零件加工过程中,由相互连接的尺寸形成封闭的尺寸组,称为尺寸链。如下图间隙A0与其它五个尺寸连接成的封闭尺寸组,形成尺寸链。 2.环——列入尺寸链中的每一个尺寸称为环。如上图中的A0、A1、A2、A3、A4、A5都是环。长度环用大写斜体拉丁字母A,B,C……表示;角度环用小写斜体希腊字母α,β等表示。 3.封闭环——尺寸链中在装配过程或加工过程后自然形成的一环,称为封闭环。如上图中 A0。封闭环的下角标“0”表示。 4.组成环——尺寸链中对封闭环有影响的全部环,称为组成环。如上图中A1、A2、A3、A4、 A5。组成环的下角标用阿拉伯数字表示。 5.增环——尺寸链中某一类组成环,由于该类组成环的变动引起封闭环同向变动,该组成环 为增环。如上图中的A3。 6.减环——尺寸链中某一类组成环,由于该类组成环的变动引起封闭环的反向变动,该类组 成环为减环。如上图中的A1、A2、A4、A5。 7.补偿环——尺寸链中预先选定某一组成环,可以通过改变其大小或位置,使封闭环达到规 定的要求,该组成环为补偿环。如下图中的L2。

二、尺寸链的形成 为分析与计算尺寸链的方便,通常按尺寸链的几何特征,功能要求,误差性质及环的相互关系与相互位置等不同观点,对尺寸链加以分类,得出尺寸链的不同形式。 1.长度尺寸链与角度尺寸链 ①长度尺寸链——全部环为长度尺寸的尺寸链,如图1 ②角度尺寸链——全部环为角度尺寸的尺寸链,如图3

2.装配尺寸链,零件尺寸链与工艺尺寸链 ①装配尺寸链——全部组成环为不同零件设计尺寸所形成的尺寸链,如图4 ②零件尺寸链——全部组成环为同一零件设计尺寸所形成的尺寸链,如图5 ③工艺尺寸链——全部组成环为同一零件工艺尺寸所形成的尺寸链,如图6。工艺尺寸指工艺尺寸,定位尺寸与基准尺寸等。

数据结构模拟卷(含答案)经典习题培训讲学

数据结构模拟卷(含答案)经典习题

练习题 一、单项选择题 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4

6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 数据结构是() A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 8. 算法分析的目的是() A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是 () A.插入B.删除 C.排序D.定位10. 下列图示的顺序存储结构表示的二叉树是( )

数据结构单链表、双链表的逆置算法

数据结构与算法 的课程设计 课程设计题目:数据结构的逆置算法 院系名称:信息技术学院 专业(班级):计算机2班 姓名: 学号: 指导教师:

实验内容:分别用一维数组,单链表,双链表实现逆置 (一)使用一维数组实现逆置 1.需求分析:定义一个一维数组(整型),用for语句实现循环,给数组元素赋值,并将 数组元素逆序输出。 2.详细设计: main() { int a[3],i; /*定义元素个数为3的一维数组*/ for(i=0;i<3;i++) scanf("%d",&a[i]); for(i=2;i>=0;i--) printf("%d ",a[i]); getch(); } 3.运行及调试: 4.附录: #include void main() { int a[3],i; /*定义一维数组*/ for(i=0;i<3;i++) scanf("%d",&a[i]); for(i=2;i>=0;i--) printf("%d ",a[i]); getch(); } (二)单链表实现逆置 1.需求分析:创建一个单链表并实现逆序输出 2.详细设计:定义的所有数据类型,对每个操作写出伪码算法;对主程序和其他模块也都写出伪码算法。 (1)单链表的定义 typedef struct node

{ int data;/*数据域为整型*/ struct node* next; /*定义结点的指针域*/ }LinkList;/*数据结点*/ (2)头插法建立单链表 Tnode *CreatList() { Tnode *head; /*头指针*/ LinkList *p;/*工作指针/ int ip; head=(Tnode *)malloc(sizeof(Tnode)); head->next=NULL;/*链表开始为空*/ printf("please input the number:\n"); scanf("%d",&ip); /*向链表中添加元素*/ while(ip!=000) { p=(LinkList *)malloc(sizeof(LinkList));/*生成新结点*/ p->data=ip; /*将值赋给新生结点*/ p->next=head->next; head->next=p; scanf("%d",&ip); } if(ip==000) /*当输入的数值为000时结束*/ printf("\nthe ip is end!\n\n"); return head; } (3)读取链表中的数据 void ReadList(Tnode *head) { LinkList *p; p=head->next; while(p) { printf("%d ",p->data); p=p->next; } printf("\n"); } (4)链表的倒置 void ExchangeList(Tnode *head) { LinkList *r,*s; r=head->next; head->next=NULL; while(r) { s=r->next; r->next=head->next; head->next=r; r=s;

尺寸链例题

第五章 工艺规程设计 例1:图示零件,2面设计尺寸为 2522 .00 +mm ,尺寸 600 12.0-mm 已经保证,现以1面定位用调整法 精铣2面,试计算工序尺寸。 解:(1)建立尺寸链 设计尺寸2522 .00 +mm 是间接保证的,是封 闭环,A 1(600 12.0-mm )和A 2为组成环。 (2)计算 根据 A 0=∑=m i i A 1-∑-+=11 n m i i A A 2 = A 1-A 0=35 ES 0=∑=m i i ES 1- ∑-+=11 n m i i EI EI 2=ES 1-ES 0=-0.22 EI 0=∑=m i i EI 1-∑-+=11 n m i i ES 2=EI 1-EI 0=-0.12 则:工序尺寸A 2=3512.022.0--=34.880 10.0-mm 。 例2:下图所示工件外圆、内孔及端面均已加工完毕,本序加工 A 面,保证设计尺寸8±0.1 mm 。由于不便测量,现已B 面作为测量基准,试求测量尺寸及其偏差。 解:(1)建立尺寸链 设计尺寸8±0.1是 mm 是封闭环,A 1、 A 2、A 3是组成环。 (2)计算 根据 A 0=∑=m i i A 1-∑-+=1 1 n m i i A 1 = A 0-A 2+A 3=18 ES 0=∑=m i i ES 1-∑-+=1 1 n m i i EI ES 1=ES 0-ES 2+EI 3=0 EI 0=∑=m i i EI 1-∑-+=1 1 n m i i EI 1=EI 0-EI 2+ES 3=-0.05 则:测量尺寸A 1=180 05.0-=17.9505 .00 + mm 。

线性表算法题

已知线性表(a1 a2 a3 …an)按顺序存于内存,每个元素都是整数,试设计用最少时间把所有值为负数的元素移到全部正数值(假设0为正数)元素前边的算法:例:(x,-x,-x,x,x,-x …x)变为(-x,-x,-x…x,x,x)。 .两个整数序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。 设用带头结点的双向循环链表表示的线性表为L=(a1,a2, …a n)。写出算法将L改造成:L=(a1,a3,…a n,…a4,a2)。 已知A、B、C是三个顺序表且其元素按递增顺序排列,每个表中元素均无重复。在表A删去既在表B中出现又在表C中出现的元素。试设计实现上述删除操作的算法Delete。 在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。例如:(7,10,10,21,30,42,42,42,51,70)将变作(7,10,21,30,42,51,70)。 假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。 试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法。void delete(Linklist &L) 在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。例如:(7,10,10,21,30,42,42,42,51,70)将变作(7,10,21,30,42,51,70)。 设有一个正整数序列组成的有序单链表(按递增次序有序,且允许有相等的整数存在),试编写能实现下列功能的算法:(要求用最少的时间和最小的空间) ⑴确定在序列中比正整数x大的数有几个(相同的数只计算一次,如序列 {20,20,17,16,15,15,11,10,8,7,7,5,4}中比10大的数有5个); ⑵在单链表将比正整数x小的数按递减次序排列; ⑶将正整数(比)x大的偶数从单链表中删除。

相关文档
最新文档