安徽理工大学数据结构复习提纲(答案)

安徽理工大学数据结构复习提纲(答案)
安徽理工大学数据结构复习提纲(答案)

数据结构复习提纲

一,选择题

1.数据结构是指( A )。

A.数据元素的组织形式

B.数据类型

C.数据存储结构

D.数据定义

2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为( C )。

A.存储结构

B.逻辑结构

C.链式存储结构

D.顺序存储结构

3.设语句x++的时间是单位时间,则以下语句的时间复杂度为( B )。

for(i=1; i<=n; i++)

for(j=i; j<=n; j++)

x++;

n) C.O(n) D.O(3n)

A.O(1)

B.O(2

4.计算机内部数据处理的基本单位是(C )。

A.数据

B.数据元素

C.数据项

D.数据库

5.在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动 A 个元素。

A.n-i B.n-i+l C.n-i-1 D.i

6. 线性表采用链式存储时,其地址___ D_____。

A.必须是连续的B.一定是不连续的

C.部分地址必须是连续的D.连续与否均可以

7.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较____C__ __个元素结点。

A.n/2 B.n C.(n+1)/2 D.(n-1)/2

8.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是__ D__。

A. p->next=s; s->prior=p;

p->next->prior=s; s->next=p->next;

B. s->prior=p; s->next=p->next;

p->next=s; p->next->prior=s;

C. p->next=s; p->next->prior=s;

s->prior=p; s->next=p->next;

D. s->prior=p; s->next=p->next;

p->next->prior=s; p->next=s;

9.设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为____A ____。

A.p->next=p->next->next; B.p=p->next;

C.p=p->next->next; D.p->next=p;

10.在一个长度为n的顺序表中向第i个元素(0< i

A.n-i B.n-i+l C.n-i-1 D.i

11.在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行------B------

A.s->next=p->next; p->next=s

B.q->next=s; s->next=p

C.p->next=s->next; s->next=p

D.p->next=s; s->next=q

12. 在顺序表中,只要知道___D___,就可在相同时间内求出任一结点的存储地址。

A.基地址B.结点大小

C.向量大小D.基地址和结点大小

13. 设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列_____ C_____。

A.A, B, C, D, E B.B, C, D, E, A

C.E, A, B, C, D D.E, D, C, B, A

14.向一个栈顶指针为hs的链栈中插入一个s结点时,应执行_ B___。

A.hs->next=s;

B.s->next=hs; hs=s;

C.s->next=hs->next;hs->next=s;

D.s->next=hs; hs=hs->next;

15.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为___D _____。

A.rear%n= = front B.(front+l)%n= = rear

C.rear%n -1= = front D.(rear+l)%n= = front

16.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为__ _C____。

A.rear%n= = front B.front+l= rear

C.rear= = front D.(rear+l)%n= front

17. 在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为____ _A___。

A.front=front->next B.rear=rear->next

C.rear=front->next D.front=rear->next

18.设二维数组A[0…m-1][0…n-1]按行优先顺序存储在内存中,第一个元素的地址为p,每个元素占k个字节,则元素a ij的地址为( A )。

A.p +[i*n+j-1]*k

B.p+[(i-1)*n+j-1]*k

C.p+[(j-1)*n+i-1]*k

D.p+[j*n+i-1]*k

19.若数组A[0…m][0…n]按列优先顺序存储,则a ij地址为(A )。

A.LOC(a00)+[j*m+i]

B. LOC(a00)+[j*n+i]

C.LOC(a00)+[(j-1)*n+i-1]

D. LOC(a00)+[(j-1)*m+i-1]

20. 若下三角矩阵A n×n,按列顺序压缩存储在数组Sa[0…(n+1)n/2]中,则非零元素a ij的地址为( B )。(设每个元素占d个字节)

A. [(j-1)*n-

2)1

)(

2

(-

-j

j

+i-1]*d

B. [(j-1)*n-

2)1

)(

2

(-

-j

j

+i]*d

C.[(j-1)*n-

2)1

)(

2

(-

-j

j

+i+1]*d

D.[(j-1)*n-

2)1

)(

2

(-

-j

j

+i-2]*d

21.设有广义表D=(a,b,D),其长度为( B ),深度为(A )。

A.无穷大

B.3

C.2

D.5

22. 广义表A=((x,(a,B)),(x,(a,B),y)),则运算head(head(tail(A)))的结果为( A )。

A.x

B.(a,B)

C.(x,(a,B))

D.A

23.稀疏矩阵一般的压缩存储方法有两种,即(C )。

A.二维数组和三维数组

B.三元组和散列

C.三元组和十字链表

D.散列和十字链表

24.一个广义表的表头总是一个(D )。

A.广义表

B.元素

C.空表

D.元素或广义表

25.一个广义表的表尾总是一个(A )。

A.广义表

B.元素

C.空表

D.元素或广义表

26.在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( C )个。

A. 4

B. 5

C. 6

D. 7

27.假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为(B )个。

A. 15

B. 16

C. 17

D. 47

28.假定一棵三叉树的结点数为50,则它的最小高度为(C )。

A. 3

B. 4

C. 5

D. 6

29.用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点R[i]若有左孩子,其左孩子的编号为结点( B )。

A. R[2i+1]

B. R[2i]

C. R[i/2]

D. R[2i-1]

30.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( D )。

A. 24

B. 48

C. 72

D. 53

31.设n , m 为一棵二叉树上的两个结点,在中序遍历序列中n在m前的条件是( B )。

A. n在m右方

B. n在m 左方

C. n是m的祖先

D. n是m的子孙

32.如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的( B )。

A. 中序

B. 前序

C. 后序

D. 层次序

33.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的入度数之和为( A )。

A. s

B. s-1

C. s+1

D. n

34.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的度数之和为( D )。

A. s

B. s-1

C. s+1

D. 2s

35.在一个具有n个顶点的无向完全图中,所含的边数为( C )。

A. n

B. n(n-1)

C. n(n-1)/2

D. n(n+1)/2

36.在一个具有n个顶点的有向完全图中,所含的边数为( B )。

A. n

B. n(n-1)

C. n(n-1)/2

D. n(n+1)/2

37. 若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用( A )次深度优先搜索遍历的算法。

A. k

B. 1

C. k-1

D. k+1

38.若要把n个顶点连接为一个连通图,则至少需要( C )条边。

A. n

B. n+1

C. n-1

D. 2n

39.在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为( D )。

A. n

B. n?e

C. e

D. 2?e

40.在一个具有n个顶点和e条边的有向图的邻接矩阵中,表示边存在的元素个数为( C )。

A. n

B. n?e

C. e

D. 2?e

41.在一个具有n个顶点和e条边的有向图的邻接表中,保存顶点单链表的表头指针向量的大小至少为( A )。

A. n

B. 2n

C. e

D. 2e

42.对于一个有向图,若一个顶点的度为k1,出度为k2,则对应逆邻接表中该顶点单链表中的边结点数为( C )。

A. k1

B. k2

C. k1-k2

D. k1+k2

43. 若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行深度优先搜索,得到的顶点序列可能为( B )。

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

44. 若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可能为( D )。

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

45.若一个图的边集为{<1,2>,<1,4>,<2,5>,<3,1>,<3,5>,<4,3>},则从顶点1开始对该图进行深度优先搜索,得到的顶点序列可能为( A )。

A. 1,2,5,4,3

B. 1,2,3,4,5

C. 1,2,5,3,4

D. 1,4,3,2,5

46.若一个图的边集为{<1,2>,<1,4>,<2,5>,<3,1>,<3,5>,<4,3>},则从顶点1开始对该图进行广度优先搜索,得到的顶点序列可能为( C )。

A. 1,2,3,4,5

B. 1,2,4,3,5

C. 1,2,4,5,3

D. 1,4,2,5,3

47. 由一个具有n个顶点的连通图生成的最小生成树中,具有( B )条边。

A. n

B. n-1

C. n+1

D. 2?n

48. 已知一个有向图的边集为{,,,,,},则由该图产生的一种可能的拓扑序列为( A )。

A. a,b,c,d,e

B. a,b,d,e,b

C. a,c,b,e,d

D. a,c,d,b,e

49.若查找每个元素的概率相等,则在长度为n的顺序表上查找任一元素的平均查找长度为( D)。

A. n

B. n+1

C. (n-1)/2

D. (n+1)/2

50.对于长度为9的顺序存储的有序表,若采用折半查找,在等概率情况下的平均查找长度为( A )的9分之一。

A. 20

B. 18

C. 25

D. 22

51.对具有n个元素的有序表采用折半查找,则算法的时间复杂度为( D )。

A. O(n)

B. O(n2)

C. O(1)

D. O(log2n)

52. 在索引查找中,若用于保存数据元素的主表的长度为n,它被均分为k个子表,每个子表的长度均为n/k,则索引查找的平均查找长度为(D)。

A. n+k

B. k+n/k

C. (k+n/k)/2

D. (k+n/k)/2+1

53.在索引查找中,若用于保存数据元素的主表的长度为144,它被均分为12子表,每个子表的长度均为12,则索引查找的平均查找长度为( A )。

A. 13

B. 24

C. 12

D. 79

54.从具有n个结点的二叉排序树中查找一个元素时,在平均情况下的时间复杂度大致为( C )。

A. O(n)

B. O(1)

C. O(log2n)

D. O(n2)

55. 在一棵平衡二叉排序树中,每个结点的平衡因子的取值范围是( A )。

A. -1~1

B. -2~2

C. 1~2

D. 0~1

56.若根据查找表(23,44,36,48,52,73,64,58)建立哈希表,采用h(K)=K%7计算哈希地址,则哈希地址等于3的元素个数( B )。

A. 1

B. 2

C. 3

D. 4

57.若根据查找表建立长度为m的哈希表,采用线性探测法处理冲突,假定对一个元素第一次计算的哈希地址为d,则下一次的哈希地址为( D )。

A. d

B. d+1

C. (d+1)/m

D. (d+1)%m

58. 在对n个元素进行冒泡排序的过程中,第一趟排序至多需要进行( B )对相邻元素之间的交换。

A. n

B. n-1

C. n+1

D. n/2

59.在对n个元素进行直接插入排序的过程中,算法的空间复杂度为( A )。

A. O(1)

B. O(log2n)

C. O(n2)

D. O(nlog2n)

60.在对n个元素进行堆排序的过程中,时间复杂度为( D )。

A. O(1)

B. O(log2n)

C. O(n2)

D. O(nlog2n)

61.假定一个初始堆为(1, 5, 3, 9, 12, 7, 15, 10),要求从大到小排序,则进行第一趟堆排序后得到的结果为( A )。

A. 3, 5, 7, 9, 12, 10, 15, 1

B. 3, 5, 9, 7, 12, 10, 15, 1

C. 3, 7, 5, 9, 12, 10, 15, 1

D. 3, 5, 7, 12, 9, 10, 15, 1 62. 若对n 个元素进行归并排序,则进行归并的趟数为( D )。 A. n B. n-1 C. n/2 D. ?log 2n ? 63. 若要对1000个元素排序,要求既快又稳定,则最好采用( B )方法。 A. 直接插入排序 B. 归并排序 C. 堆排序 D. 快速排序

64. 若要对1000个元素排序,要求既快又节省存储空间,则最好采用( C )方法。

A. 直接插入排序

B. 归并排序

C. 堆排序

D. 快速排序

65. 在平均情况下速度最快的排序方法为( D )。

A. 简单选择排序

B. 归并排序

C. 堆排序

D. 快速排序 二,填空题

1. 数据结构按逻辑结构可分为两大类,分别是 线性结构 和非线性结构。

2. 数据的逻辑结构有四种基本形态,分别是 集合 、 线性 、 树 、 图 。

3. 线性结构反映结点间的逻辑关系是 一对一的 ,非线性结构反映结点间的逻辑关系是 一对多或多对

多 。

4. 一个算法的效率可分为 时间 效率和 空间 效率。

5. 线性结构中元素之间存在 一对一 关系;树型结构中元素之间存在 一对多 关系;图型结构中元

素之间存在 多对多 关系。 6. 下面程序段的时间复杂度是 O(

n ) 。

i=s=0; while(s

7. 下面程序段的时间复杂度是 O(log 3n) 。

i=1; while(i<=n) i=i*3;

8. 算法时间复杂度的分析通常有两种方法,即 事后统计 ,和 事前估计 的方法,通常我们对算

法求时间复杂度时,采用后一种方法。

9. 在一个长度为n 的顺序表的第i 个元素之前插入一个元素,需要后移_ n-i+1 个元素。

10. 在线性表的顺序存储中,元素之间的逻辑关系是通过 物理存储位置_决定的;在线性表的链接存储中,

元素之间的逻辑关系是通过 链域的指针值 决定的。

11. 在双向链表中,每个结点含有两个指针域,一个指向 前趋 结点,另一个指向 后继 结点。 12. 当对一个线性表经常进行存取操作,而很少进行插入和删除操作时,则采用 顺序 ,存储结构为宜。

相反,当经常进行的是插入和删除操作时,则采用 链接 存储结构为宜。

13. 线性表、栈和队列都是 线性 结构,可以在线性表的 任何 位置插入和删除元素;对于栈只能在

栈顶 位置插入和删除元素;对于队列只能在 队尾 位置插入元素和在 队头 位置删除元素。 14. 设有一空栈,现有输入序列1,2,3,4,5,经过push, push, pop, push, pop, push, push 后,输出序列是

2、3 。

15. 无论对于顺序存储还是链式存储的栈和队列来说,进行插入或删除运算的时间复杂度均相同为

O(1) 。

16. 对于一个二维数组A[m][n],若按行序为主序存储,则任一元素A[i][j]相对于A[0][0]的地址为 i ×n+j

个元素位置 。

17. 一个广义表为(a,(a,b),d,e,((i,j),k)),则该广义表的长度为 5 ,深度为 3 。

?

????

?????-510000030200

18. 一个稀疏矩阵为 ,则对应的三元组线性表

为 ((0,2,2),(1,0,3),(2,2,-1),(2,3,5)) 。 19. 已知广义表A=((a,b,c ),(d,e,f )),则运算head(tail(tail(A)))= e 。

20. 设有一个10阶的对称矩阵A ,采用压缩存储方式以行序为主序存储,a 00为第一个元素,其存储地址

为0,每个元素占有1个存储地址空间,则a 85的地址为 41 。

21. 已知广义表Ls=(a,(b,c,d),e),运用head 和tail 函数取出Ls 中的原子b 的运算是

head(head(tail(Ls))) 。

22. 数组A[1…10,-2…6,2…8]以行优先的顺序存储,设第一个元素的首地址是100,每个元素占3个存

储长度的存储空间,则元素A[5,0,7]的存储地址为 913 。

23. 假定一棵树的广义表表示为A (B (E ),C (F (H ,I ,J ),G ),D ),则该树的度为 3 ,树的深度为

4 ,终端结点的个数为 6 ,单分支结点的个数为 1 ,双分支结点的个数为 1 ,三分支结点的个数为 2 ,C 结点的双亲结点为 A ,其孩子结点为 F 和 G 结点。

24. 对于一个有n 个结点的二叉树,当它为一棵 完全 二叉树时具有最小高度,即为2log (1)n +????,

当它为一棵单支树具有 最大 高度,即为 n 。

25. 由带权为3,9,6,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为 55 。 26. 在一棵二叉排序(搜索)树上按 中序 遍历得到的结点序列是一个有序序列。

27. 对于一棵具有n 个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为 2n 个,其中

n-1 个用于链接孩子结点, n+1 个空闲着。

28. 在一棵二叉树中,度为0的结点个数为n 0,度为2的结点个数为n 2,则n 0= n 2+1 。

29. 一棵含有n 个结点的k 叉树, 单支树 形态达到最大深度, 完全二叉树 形态达到最小深度。 30. 线索链表中的rtag 域值为 1 时,表示该结点无右孩子,此时 RChild 域为指向该结点后继线

索的指针。

31. 在一个图中,所有顶点的度数之和等于所有边数的 2 倍。

32. 在一个具有n 个顶点的无向完全图中,包含有 n(n-1)/2 条边,在一个具有n 个顶点的有向完全图中,

包含有 n(n-1) 条边。

33. 假定一个有向图的顶点集为{a ,b ,c ,d ,e ,f},边集为{, , , , , },则出度为

0的顶点个数为__2 _,入度为1的顶点个数为_ 4 _。

34. 在一个具有n 个顶点的无向图中,要连通所有顶点则至少需要 n-1 条边。 35. 表示图的两种存储结构为 邻接矩阵 和 邻接表 。

36. 若一个图的顶点集为{a,b,c,d,e,f},边集为{(a,b),(a,c),(b,c),(d,e)},则该图含有 3 个连通分量。 37. 对于具有n 个顶点和e 条边的有向图和无向图,在它们对应的邻接表中,所含边结点的个数分别为 2e

和 e 。

38. 在有向图的邻接表和逆邻接表表示中,每个顶点邻接表分别链接着该顶点的所有 出边 和 入边

结点。

39. 对于一个具有n 个顶点和e 条边的无向图,当分别采用邻接矩阵和邻接表表示时,求任一顶点度数的

时间复杂度分别为 O (n ) 和 O (e/n ) 。

40. 假定一个图具有n 个顶点和e 条边,则采用邻接矩阵和邻接表表示时,其相应的空间复杂度分别为 O

(n 2) 和 O (n+e ) 。

41. 图的 深度 优先搜索遍历算法是一种递归算法,图的 广度 优先搜索遍历算法需要使用队列。 42. 对长度为n 的查找表进行查找时,假定查找第i 个元素的概率为p i ,查找长度(即在查找过程中依次同

有关元素比较的总次数)为c i ,则在查找成功情况下的平均查找长度的计算公式为∑

=n

i i

i c p 1。

43. 以折半查找方法在一个查找表上进行查找时,该查找表必须组织成顺序存储的有序表。

44. 从有序表(12,18,30,43,56,78,82,95)中分别折半查找43和56元素时,其比较次数分别为 1 和

3 。

45. 假定对长度n=50的有序表进行折半查找,则对应的判定树高度为 6 ,最后一层的结点数为 19 。

46. 假定在索引查找中,查找表长度为n,每个子表的长度相等,设为s,则进行成功查找的平均查找长度

为 (n/s+s)/2+1 。

47.在索引查找中,假定查找表(即主表)的长度为96,被等分为8个子表,则进行索引查找的平均查找

长度为 11 。

48. 根据n个元素建立一棵二叉排序树的时间复杂度大致为 O(n log2n) 。

49. 在一棵平衡二叉排序树中,每个结点的左子树高度与右子树高度之差的绝对值不超过_ 1 _。

50. 假定对线性表(38,25,74,52,48)进行哈希存储,采用H(K)=K %7作为哈希函数,采用线性探测法处

理冲突,则在建立哈希表的过程中,将会碰到 5 次存储冲突。

51. 对线性表(18,25,63,50,42,32,90)进行哈希存储时,若选用H(K)=K % 9作为哈希函数,则哈希地址为

0的元素有 3 个,哈希地址为5的元素有 2 个。

52.每次从无序子表中取出一个元素,把它插入到有序子表中的适当位置,此种排序方法叫做插入排

序;每次从无序子表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做选择排序。

53.每次直接或通过支点元素间接比较两个元素,若出现逆序排列时就交换它们的位置,此种排序方法叫做快速排序;每次使两个相邻的有序表合并成一个有序表的排序方法叫做归并排序。

54.对n个记录进行冒泡排序时,最少的比较次数为 n-1 ,最少的趟数为 1 。

55. 假定一组记录为(46,79,56,38,40,84),则利用堆排序方法建立的初始小根堆为

(38,40,56,79,46,84) 。

56. 假定一组记录为(46,79,56,38,40,84),(往后冒泡)在冒泡排序的过程中进行第一趟排序后的结果为

(46,56,38,40,79,84) 。

57.假定一组记录为(46,79,56,38,40,80),对其进行快速排序的第一次划分后的结果为 [40 38] 46 [56 79

80] 。

58. 假定一组记录为(46,79,56,38,40,80,46,75,28,46),对其进行归并排序的过程中,第三趟归并后的第2个

子表为 [28 46] 。

59. 在所有排序方法中,堆排序方法使数据的组织采用的是完全二叉树的结构。

60. 直接选择排序方法能够每次从无序表中顺序查找出一个最小值。

三,算法设计与应用题

1,设计将带表头的链表逆置算法。

设单循环链表的头指针为head,类型为LinkList。逆置时需将每一个结点的指针域作以修改,使其原前趋结点成为后继。如要更改q结点的指针域时,设s指向其原前趋结点,p指向其原后继结点,则只需进行q->next=s;操作即可,算法描述如下:

void invert(LinkList *head)

{ //逆置head指针所指向的单循环链表

linklist *p, *q, *s;

q=head;

p=head->next;

while (p!=head) //当表不为空时,逐个结点逆置

{ s=q;

q=p;

p=p->next;

q->next=s;

}

p->next=q;

}

2,已知用一维数组存放的一棵完全二叉树:ABCDEFGHIJKL ,写出该二叉树的先序、中序和后序遍历序列。

先序序列:ABDHIEJKCFLG 中序序列:HDIBJEKALFCG 后序序列:HIDJKEBLFGCA

3,给出如图A 所示的森林的先根、后根遍历结点序列,然后画出该森林对应的二叉树。

先根遍历:ABCDEFGHIJKLMNO 后根遍历:BDEFCAHJIGKNOML 森林转换成二叉树如图B 所示。

4. 给定一棵用二叉链表表示的二叉树,其中的指针t 指向根结点,试写出从根开始,按层次遍历二叉树的算法,同层的结点按从左至右的次序访问。

考虑用一个顺序队que 来保存遍历过程中的各个结点,由于二叉树以二叉链表存储,所以可设que 为一个指向数据类型为bitree 的指针数组,最大容量为maxnum ,下标从1开始,同层结点从左到右存放。算法中的front 为队头指针,rear 为队尾指针。

levelorder (BiTree *t) //按层次遍历二叉树t { BiTree *que[maxnum]; int rear,front; if (t!=NULL)

{ front=0; //置空队列 rear=1; que[1]=t; do { front=front%maxsize+1; //出队 t=que[front]; printf(t->data);

if (t->lchild!=NULL) //左子树的根结点入队 { rear=rear%maxsize+1;

que[rear]=t->lchild;

A B

D E F

C G

H

J

I K N

O

M L 图A

B G D

C H K E I F J L

M N

O

A 图5-16

}

if (t->rchild!=NULL) //右子树的根结点入队 { rear=rear%maxsize+1;

que[rear]=t->rchild;

}

}while (rear= =front); //队列为空时结束 } }

5. 已知一个无向图的邻接表如图C 所示,试写出从顶点0出发分别进行深度优先和广度优先搜索遍历得到的顶点序列。要求画出无向图。

图 C

深度优先搜索序列:0,3,6,4,1,5,2 广度优先搜索序列:0,3,2,6,5,4,1

6. 假定一个待哈希存储的线性表为(32,75,29,63,48,94,25,36,18,70,49,80),哈希地址空间为HT[12],若采用除留余数法构造哈希函数和拉链法处理冲突,试画出最后得到的哈希表,并求出平均查找长度。

H(K)=K % 11,哈希表如图7-5所示,平均查找长度17/12。

7.已知一组记录为(46,74,53,14,26,38,86,65,27,34),给出采用快速排序法进行排序时每一趟的排序结果。 (0) [46 74 53 14 26 38 86 65 27 34]

(1) [34 27 38 14 26] 46 [86 65 53 74] (2) [26 27 14] 34 38 46 [74 65 53] 86 (3) 14 26 27 34 38 46 [53 65] 74 86 (4) 14 26 27 34 38 46 53 65 74 86

安徽理工大学封面个人简历模板

……………………….…………………………………………………………………………………姓名:杜宗飞专业:计算机科学与技术 学院:数理信息学院学历:本科……………………….…………………………………………………………………………………手机:×××E – mail:×××地址:安徽理工大学

自荐信 尊敬的领导: 您好!今天我怀着对人生事业的追求,怀着激动的心情向您毛遂自荐,希望您在百忙之中给予我片刻的关注。 我是安徽理工大学计算机科学与技术专业的2014届毕业生。安徽理工大学大学四年的熏陶,让我形成了严谨求学的态度、稳重踏实的作风;同时激烈的竞争让我敢于不断挑战自己,形成了积极向上的人生态度和生活理想。 在安徽理工大学四年里,我积极参加各种学科竞赛,并获得过多次奖项。在各占学科竞赛中我养成了求真务实、努力拼搏的精神,并在实践中,加强自己的创新能力和实际操作动手能力。 在安徽理工大学就读期间,刻苦进取,兢兢业业,每个学期成绩能名列前茅。特别是在专业必修课都力求达到90分以上。在平时,自学一些关于本专业相关知识,并在实践中锻炼自己。在工作上,我担任安徽理工大学计算机01班班级班长、学习委员、协会部长等职务,从中锻炼自己的社会工作能力。 我的座右铭是“我相信执着不一定能感动上苍,但坚持一定能创出奇迹”!求学的艰辛磨砺出我坚韧的品质,不断的努力造就我扎实的知识,传统的熏陶塑造我朴实的作风,青春的朝气赋予我满怀的激情。手捧菲薄求职之书,心怀自信诚挚之念,期待贵单位给我一个机会,我会倍加珍惜。 下页是我的个人履历表,期待面谈。希望贵单位能够接纳我,让我有机会成为你们大家庭当中的一员,我将尽我最大的努力为贵单位发挥应有的水平与才能。 此致 敬礼! 自荐人:××× 2014年11月12日 唯图设计因为专业,所 以精美。为您的求职锦上添花,Word 版欢迎 下载。

数据结构课程设计

1.一元稀疏多项式计算器 [问题描述] 设计一个一元稀疏多项式简单计算器。 [基本要求] 输入并建立多项式; 输出多项式,输出形式为整数序列:n, c1, e1, c2, e2,……, cn, en ,其中n是多项式的项数,ci, ei分别是第i项的系数和指数,序列按指数降序排序; 多项式a和b相加,建立多项式a+b; 多项式a和b相减,建立多项式a-b; [测试数据] (2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9-x+12x-3) (1+x+x2+x3+x4+x5)+(-x3-x4)=(x5+x2+x+1) (x+x3)+(-x-x3)=0 (x+x2+x3)+0=(x3+x2+x) [实现提示] 用带头结点的单链表存储多项式,多项式的项数存放在头结点中。 2.背包问题的求解 [问题描述] 假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2) [实现提示] 可利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后顺序选取物品转入背包,假设已选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。 由于回溯求解的规则是“后进先出”因此自然要用到栈。 3.完全二叉树判断 用一个二叉链表存储的二叉树,判断其是否是完全二叉树。 4.最小生成树求解(1人) 任意创建一个图,利用克鲁斯卡尔算法,求出该图的最小生成树。 5.最小生成树求解(1人) 任意创建一个图,利用普里姆算法,求出该图的最小生成树。 6.树状显示二叉树 编写函数displaytree(二叉树的根指针,数据值宽度,屏幕的宽度)输出树的直观示意图。输出的二叉树是垂直打印的,同层的节点在同一行上。 [问题描述] 假设数据宽度datawidth=2,而屏幕宽度screenwidth为64=26,假设节点的输出位置用 (层号,须打印的空格数)来界定。 第0层:根在(0,32)处输出;

《数据结构》课程考试大纲

03 《数据结构》考试大纲 主要参考教材:严蔚敏、吴伟民编著,《数据结构(C语言版)》,清华大学出版社 谭国律等编著《数据结构》,浙江大学出版社。 总体要求: “数据结构”是一门专业技术基础课。目的就是要培养他们的数据抽象能力,学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及实现应用的相应算法,并掌握分析算法的时间和空间复杂度的技术。 考生在复习时,重点掌握基本概念、基本算法。考题以基本内容为主,题目以基础知识题为主,各章较难内容、较偏内容不考。课本所有加“*”号章节不考,第8章动态存储管理不考。外部排序,文件部分不考。 各章考试内容及要求: 一、绪论:熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之 间的关系;了解抽象数据类型的定义、表示和实现方法;熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式;理解算法五个要素的确切含义;掌握计算语句频度和估算算法时间复杂度的方法。 二、线性表:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构的描述方法;在线 性表的两类存储结构(顺序存储和链式存储)上实现基本操作;一元多项式的抽象数据类型定义、表示及加法的实现。

三、栈和队列:栈和队列的结构特性;在两种存储结构上如何实现栈和队列的基本操作和栈 和队列在程序设计中的应用。(离散事件模拟不考) 四、串:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构和堆 分配存储结构;串的各种基本操作的实现及应用;串的朴素模式匹配算法。 五、数组:数组的类型定义和表示方法;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实 现;(广义表不考)。 六、树和二叉树:二叉树的定义、性质和存储结构;二叉树的遍历和线索化以及遍历算法 的各种描述形式;树和森林的定义、存储结构、树和森林与二叉树的转换、遍历;树的多种应用;本章是该课程的重点内容之一。 七、图:图的定义和术语;图的邻接矩阵存储结构、邻接表存储结构:图的两种遍历策略: 深度优先搜索和广度优先搜索;图的最小生成树prim算法、Kruskal 算法;拓扑排序算法;单源最短路径问题的Dijstra 算法。 八、查找:讨论查找表(包括静态查找表和动态查找表)的各种实现方法:顺序表、有序表、 树表和哈希表;关于衡量查找表的主要操作——查找的查找效率的平均查找长度的讨论。(静态树表、平衡二叉树、B树不考)

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

数据结构复习提纲(整理)

复习提纲 第一章数据结构概述 基本概念与术语(P3) 1.数据结构是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科. 2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合 2.数据元素是数据的基本单位 3.数据对象相同性质的数据元素的集合 4.数据结构包括三方面内容:数据的逻辑结构.数据的存储结构.数据的操作. (1)数据的逻辑结构指数据元素之间固有的逻辑关系. (2)数据的存储结构指数据元素及其关系在计算机内的表示 ( 3 ) 数据的操作指在数据逻辑结构上定义的操作算法,如插入,删除等. 5.时间复杂度分析 -------------------------------------------------------------------------------------------------------------------- 1、名词解释:数据结构、二元组 2、根据数据元素之间关系的不同,数据的逻辑结构可以分为 集合、线性结构、树形结构和图状结构四种类型。 3、常见的数据存储结构一般有四种类型,它们分别是___顺序存储结构_____、___链式存储结构_____、___索引存储结构_____和___散列存储结构_____。 4、以下程序段的时间复杂度为___O(N2)_____。 int i,j,x; for(i=0;i=0)个具有相同性质的数据元素a1,a2,a3……,an组成的有穷序列 //顺序表结构 #define MAXSIZE 100 typedef int DataType; Typedef struct{ DataType items[MAXSIZE]; Int length; }Sqlist,*LinkList; //初始化链表 void InitList(LinkList *L){ (*L)=(LinkList)malloc(sizeof(LNode)); if(!L){ cout<<”初始化失败!”; return;

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

安徽理工大学钢结构第四章题库-精

第四章 轴心受力构件 一、选择题 1.轴心受力构件应满足正常使用极限状态的( C )要求。 A .变形 B .强度 C .刚度 D .挠度 2.轴心受力构件应满足承载能力极限状态的( B )要求。 A .变形 B .强度 C .刚度 D .挠度 3.对于轴心受压构件或偏心受压构件,如何保证其满足正常使用极限状态?( D ) A .要求构件的跨中挠度不得低于设计规范规定的容许挠度 B .要求构件的跨中挠度不得超过设计规范规定的容许挠度 C .要求构件的长细比不得低于设计规范规定的容许长细比 D .要求构件的长细比不得超过设计规范规定的容许长细比 4. 用Q235钢和Q345钢分别建造一轴心受压柱,两轴心受压柱几何尺寸与边界条件完全 一样,在弹性范围内屈曲时,前者临界力与后者临界力之间的关系为( C ) A .前者临界力比后者临界力大 B .前者临界力比后者临界力小 C .等于或接近 D .无法比较 5.某截面无削弱的热轧型钢实腹式轴心受压柱,设计时应计算( C ) A .整体稳定、局部稳定 B .强度、整体稳定、长细比 C .整体稳定、长细比 D .强度、局部稳定、长细比 6.在轴心受力构件计算中,验算长细比是为了保证构件满足下列哪项要求?( D ) A .强度 B .整体稳定 C .拉、压变形 D .刚度 7.在下列因素中,对轴心压杆整体稳定承载力影响不大的是( D ) A .荷载偏心的大小 B .截面残余应力的分布 C .构件中初始弯曲的大小 D .螺栓孔的局部削弱 8.关于残余应力对轴心受压构件承载力的影响,下列说法正确的是( A ) A .残余应力对轴压构件的强度承载力无影响,但会降低其稳定承载力 B .残余应力对轴压构件的稳定承载力无影响,但会降低其强度承载力 C .残余应力对轴压构件的强度和稳定承载力均无影响 D .残余应力会降低轴压构件的强度和稳定承载力 9.初始弯曲和荷载的初始偏心对轴心受压构件整体稳定承载力的影响为( A ) A .初弯曲和初偏心均会降低稳定承载力 B .初弯曲和初偏心均不会影响稳定承载力 C .初弯曲将会降低稳定承载力,而初偏心将不会影响稳定承载力 D .初弯曲将不会影响稳定承载力,而初偏心将会降低稳定承载力 10.理想弹性轴心受压构件的临界力与截面惯性矩I 和计算长度0l 的关系为( D ) A .与I 成正比,与0l 成正比 B .与I 成反比,与0l 成反比 C .与I 成反比,与2 0l 成正比 D .与I 成正比,与2 0l 成反比 11.如图所示为轴心受压构件的两种失稳形式,其中( D ) A . (a )为弯扭失稳,(b )为扭转失稳

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

安徽理工大学钢结构第一章-题库

第一章 绪论 一、选择题 1.钢结构更适合于建造大跨结构,这是由于( ) A .钢材具有良好的耐热性 B .钢材具有良好的焊接性 C .钢结构自重轻而承载力高 D .钢结构的实际受力性能和力学计算结果最符合 2.关于钢结构的特点叙述错误的是( ) A .建筑钢材的塑性和韧性好 B .钢材的耐腐蚀性很差 C .钢材具有良好的耐热性和防火性 D .钢结构更适合于建造高层和大跨结构 3.关于建筑结构钢材的特点,下列说法中错误的是( ) A .钢材具有良好的塑性,达到拉伸极限而破坏时,应变可达20%~30% B .钢材具有良好的焊接性能,采用焊接结构可以使钢结构的连接大为简化 { C .钢结构的耐腐蚀性很好,适合在各种恶劣环境中使用 D .钢结构的耐热性很好,但耐火性能很差 4.钢结构具有良好的抗震性能是因为( ) A .钢材的强度高 B .钢结构的质量轻 C .钢材良好的吸能能力和延性 D .钢结构的材质均匀 5.钢结构的主要缺点是( ) A .结构的重量大 B .造价高 C .易腐蚀、不耐火 D .施工困难多 6.当钢结构表面可能在短时间内受到火焰作用时,不适合采用的措施是( ) A .使用高强钢材 B .使用耐火耐候钢材 C .表面覆盖隔热层 D .使用防火涂料 7.下列属于正常使用极限状态的验算指标是( ) } A .强度 B .稳定 C .变形 D .疲劳 8.在进行结构或构件的变形验算时,应使用( ) A .荷载的标准值 B .荷载的设计值 C .荷载的最大值 D .荷载的最小值 9.当永久荷载效应起控制作用时,钢结构承载力极限状态的设计表达式为: )(10∑=ψγ +γγn i K Q C Q GK G i i i S S ≤A f d ,式中i C ψ是( ) A .结构重要性系数 B .可变荷载组合系数 C .荷载分项系数 D .材料的抗力分项系数 10. 结构承载力设计表达式∑=+ +n i Qid i d Q Gd f 210)(≤σψσσγ中,i ψ是荷载组合系数,它 的取值( )。 A .1>i ψ B .10<

数据结构复习题及答案

复习题(一) 一.填空题(每空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个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要

数据结构课程设计

《数据结构》 课程设计报告 学号 姓名 班级 指导教师 安徽工业大学计算机学院 2010年6月

建立二叉树和线索二叉树 1.问题描述: 分别用以下方法建立二叉树并用图形显示出来: 1)用先序遍历的输入序列 2)用层次遍历的输入序列 3)用先序和中序遍历的结果 2.设计思路: 分三个方式去实现这个程序的功能,第一个实现先序遍历的输入数列建立二叉树;第二个是用层次遍历的方法输入序列;第三个是用先序和后序遍历的结果来建立二叉树;三种方法建立二叉树后都进行输出。关键是将这三个实现功能的函数写出来就行了;最后对所建立的二叉树进行中序线索化,并对此线索树进行中序遍历(不使用栈)。 3.数据结构设计: 该程序的主要目的就是建立二叉树和线索二叉树,所以采用树的存储方式更能完成这个程序; 结点的结构如下: typedef struct bnode { DataType data; int ltag,rtag; struct bnode *lchild, *rchild; } Bnode, *BTree; 4.功能函数设计: BTree CreateBinTree() 用先序遍历的方法讲二叉树建立; BTree CREATREE() 用队列实现层次二叉树的创建; void CreatBT(); 用先序和中序遍历的结果建立二叉树; void InThread(BTree t,BTree pre) 中序线索化; 5.编码实现: #include #include #define max 100 typedef struct bnode { char data; int ltag,rtag; struct bnode *lchild,*rchild; }Bnode,*BTree; BTree Q[max]; BTree CREATREE() { char ch; int front=1,rear=0;

数据结构课程设计说明书讲解

安徽理工大学 数据结构 课程设计说明书题目: 一元多项式计算 院系:计算机科学与工程学院 专业班级:数字媒体13-1班 学号: 2013303102 学生姓名:钱福琛 指导教师:梁兴柱 2015年 1月 9 日

安徽理工大学课程设计(论文)任务书计算机科学与工程学院

2014年 11 月 10 日安徽理工大学课程设计(论文)成绩评定表

目录 1 问题描述 2 功能描述 2.1 课题要求........................................... 2.2 软件格式规定....................................... 3 设计 2 3.1 相关函数介绍说明................................... 3.2 主程序的流程基函数调用说明......................... 4 程序设计 4 4.1 多项式存储的实现................................... 4.2 加减乘除算法....................................... 4.2.1加法运算的实现............................... 4.2.2减法运算的实现............................... 4.2.3乘法运算的实现............................... 4.2.4除法运算的实现............................... 4.3 函数调用关系图..................................... 5 运行测试

数据结构课程设计

一、高校社团管理 在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效管理这些社团,要求编写程序实现以下功能:1.社团招收新成员; 2.修改社团相应信息 3.老成员离开社团 4.查询社团情况; 5.统计社团成员数; 二、简单文本编辑器 设计一个文本编辑器,允许将文件读到内存中,也就是存储在一个缓冲区中。这个缓冲区将作为一个类的内嵌对象实现。缓冲区中的每行文本是一个字符串,将每行存储在一个双向链表的结点中,要求设计在缓冲区中的行上执行操作和在单个行中的字符上执行字符串操作的编辑命令。 基本要求: 包含如下命令列。可用大写或小写字母输入。 R:读取文本文件到缓冲区中,缓冲区中以前的任何内容将丢失,当前行是文件的第一行; W:将缓冲区的内容写入文本文件,当前行或缓冲区均不改变。 I:插入单个新行,用户必须在恰当的提示符的响应中键入新行并提供其行号。 D:删除当前行并移到下一行; F:可以从第1行开始或从当前行开始,查找包含有用户请求的目标串的第一行; C:将用户请求的字符串修改成用户请求的替换文本,可选择是仅在当前行中有效的还是对全文有效的。 Q:退出编辑器,立即结束; H:显示解释所有命令的帮助消息,程序也接受?作为H的替代者。 N:当前行移到下一行,也就是移到缓冲区的下一行; P:当前行移到上一行,也就是移到缓冲区的上一行;

B:当前行移到开始处,也就是移到缓冲区的第一行; E:当前行移到结束处,也就是移到缓冲区的最后一行; G:当前行移到缓冲区中用户指定的行; V:查看缓冲区的全部内容,打印到终端上。 三、电话客户服务模拟 一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时钟将循环的 自增1(分钟)直到达到指定时间为止。在时钟的每个"时刻",就会执行一次检查来看看对当前电话服务是否已经完成了,如果是,这个电话从电话队列中删除,模 拟服务将从队列中取出下一个电话(如果有的话)继续开始。同时还需要执行一个检查来判断是否有一个新的电话到达。如果是,其到达时间被记录下来,并为其产生一个随机服务时间,这个服务时间也被记录下来,然后这个电话被放入电话队列中,当客户人员空闲时,按照先来先服务的方式处理这个队列。当时钟到达指定时间时,不会再接听新电话,但是服务将继续,直到队列中所偶电话都得到处理为止。 基本要求: (1)程序需要的初始数据包括:客户服务人员的人数,时间限制,电话的到达速率,平均服务时间 (2)程序产生的结果包括:处理的电话数,每个电话的平均等待时间 四、停车场管理 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的交费(从进入便道开始计时)。在这里假设汽车从便道上开走时不收取任何费用 基本要求: (1)汽车的输入信息格式为(到达/离去的标识,汽车牌照号码,到达/离去的时间)

安徽理工大学毕业实习报告DOC

安徽理工大学毕业实习报告 实习时间 2015年3月2日——2015年3月13日 实习地点 安徽理工大学新校区 南京奥林匹克体育中心 南京博物院 指导老师 王娇宗翔 实习目的 生产实习是土木工程专业教学计划中必不可少的实践教学环节,它是所学 理论知识与工程实践的统一。在实习过程中,我以参观者的身份深入到建筑施工单位,以南京,淮南多个工程为实习场所,在指导老师的指导下,参加工程施工工作,顺利完成了两周的实习任务。同时,也为大学毕业后从事工民建服务。 工程概况 安徽理工大学新校区 用地形状为矩形,东西长约1900米,南北长约1060米。规划校园面积3129亩(208.6万平方米),总投资约25亿元,为目前安徽省高校单体面积最大的大

学校园。按照“一次规划、总体控制、分期安排”的原则,安徽理工大学新校区建设项目规划总建筑面积约96万平方米,分两期建设。一期工程规划建筑面积约70万平方米,采取代建模式,概算投资约17亿元,由老校区三块土地出让收益解决。二期工程由安徽理工大学自建。新校区规划设计由同济大学建筑设计研究院负责完成。学校新校区正在如火如荼地建设当中,项目建成后,将成为目前全省高校中占地面积最大、一次性投入最多、建设模式最新的一个集生态、人文、数字、园林式于一体的现代化新校区,将为安徽理工大学突破历史和空间局限、谋求长远发展奠定坚实的办学基础。学校一 期工程预计2014年即可竣工,届时学校将会陆续迁入。 南京奥林匹克体育中心 南京奥林匹克体育中心位于南京市建邺区河西新城中心区域,是亚洲仅有的四个A级体育馆之一,世界第五代体育建筑的代表,是2008年前中国最大的体育场。 奥体中心总占地面积1345亩,总建筑面积约40万平米。主要建筑为“四场馆一中心”,其中包括体育场(含训练场)、体育馆、游泳馆、网球中心、体育科技中心。 南京奥体中心总投资约40亿元,于2002年8月18日正式开工,2004年底建成,2005年5月1日交付运行。是十运会和第二届亚洲青年运动会的主会场,也是2014年南京青奥会的主会场。其西邻南京地铁10号线奥体中心站,东临南京地铁2号线奥体东站。

数据结构数据结构复习提纲(新)

复习提纲: 第一章: 1.数据结构的基本概念; 2.数据结构的4类基本结构及其特性; 3.存储结构的分类及特点; 4.算法的时间复杂度计算; 第二章: 1.线性表的基本概念; 2.线性表的顺序存储结构的特点和插入删除算法; 3.顺序存储结构的应用; 4.单循环链表的存储结构特点,链表空的判断方法、插入、删除结点算法实现,报数游戏算法实现;5.循环双链表的存储特点,插入、删除结点算法实现。 第三章: 1.栈的特点、对同一序列根据栈的特点进行不同入栈、出栈操作所得结果的判断;栈的实现的相关操作;2.顺序栈的4各要素和相关操作关键语句;链栈的4个要素和相关操作关键语句; 3.了解队列的特点和可执行的基本操作,并能做相关判断; 4.顺序循环队列的队空、队满判断条件,入队、出队操作的相关关键语句; 5.顺序循环队列中对同一序列根据队列进行不同的入队、出队操作后队头和队尾指针的变化判断。 第四章: 1.串的定义、串长的定义和计算、子串个数计算(注意区分:子串与非空且不同于S本身的子串); 2.串的模式匹配(区分BF算法和KMP算法),掌握使用KMP算法计算next数组的值,并且要求掌握匹配过程(BF和KMP的匹配过程不同!)。 前三章程序重点掌握作业四、作业五、作业六、作业八、作业九 第五章: 1.特殊矩阵的压缩存储地址计算,稀疏矩阵的压缩存储结构图。 2.广义表的定义、区分原子和子表,求表头和表尾,深度和层次计算,存储结构图绘制; 3.提供一广义表,写出通过head()和tail()操作求出某个原子的表达式。 4.注意:取表头时即广义表的第一个元素,外面不再加括号;而取表尾时,要将除表头元素外的其他元素一起用圆括号括起来,即将原广义表去掉表头; 第七章:

数据结构课程设计报告

数据结构课程设计报告 题目:5 班级:计算机1102 学号:4111110030 姓名:陈越 指导老师:王新胜

一:需求分析 1.运行环境 TC 2.程序所需实现的功能 几种排序算法的演示,要求给出从初始开始时的每一趟的变化情况,并对各种排序算法性能作分析和比较: (1)直接插入排序; (2)折半插入排序; (3)冒泡排序; (4)简单选择排序; (5)快速排序; (6)堆排序; (7)归并排序. 二:设计说明 1.算法设计的思想 1)、直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。 2)、折半插入排序 排序过程:用折半查找方法确定插入位置的排序叫折半插入排序。 3)、冒泡排序

排序过程:将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r[1].key>r[2].key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止——第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录上。对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置。重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止 4)、简单选择排序 排序过程:首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换。重复上述操作,共进行n-1趟排序后,排序结束。 5)、快速排序 基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。 排序过程:对r[s……t]中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=r[s],x=rp.key。初始时令i=s,j=t。首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换。再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换。重复上述两步,直至i==j为止。再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止。 6)、堆排序 排序过程:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输

安徽理工大学钢结构第四章-题库

安徽理工大学钢结构第四章-题库

第四章轴心受力构件 一、选择题 1.轴心受力构件应满足正常使用极限状态的( C )要求。 A.变形B.强度C.刚度D.挠度 2.轴心受力构件应满足承载能力极限状态的( B )要求。 A.变形B.强度C.刚度D.挠度 3.对于轴心受压构件或偏心受压构件,如何保证其满足正常使用极限状态?( D )A.要求构件的跨中挠度不得低于设计规范规定的容许挠度 B.要求构件的跨中挠度不得超过设计规范规定的容许挠度 C.要求构件的长细比不得低于设计规范规定的容许长细比 D.要求构件的长细比不得超过设计规范规定的容许长细比 4.用Q235钢和Q345钢分别建造一轴心受

压柱,两轴心受压柱几何尺寸与边界条件完全一样,在弹性范围内屈曲时,前者临界力与后者临界力之间的关系为( C ) A.前者临界力比后者临界力大B.前者临界力比后者临界力小 C.等于或接近D.无法比较 5.某截面无削弱的热轧型钢实腹式轴心受压柱,设计时应计算( C ) A.整体稳定、局部稳定 B.强度、整体稳定、长细比 C.整体稳定、长细比D.强度、局部稳定、长细比 6.在轴心受力构件计算中,验算长细比是为了保证构件满足下列哪项要求?( D )A.强度B.整体稳定C.拉、压变形D.刚度 7.在下列因素中,对轴心压杆整体稳定承载力影响不大的是( D ) A.荷载偏心的大小B.截面残余应力的分布C.构件中初始弯曲的大小D.螺栓孔的局部削弱 8.关于残余应力对轴心受压构件承载力的影

响,下列说法正确的是( A ) A.残余应力对轴压构件的强度承载力无影响,但会降低其稳定承载力 B.残余应力对轴压构件的稳定承载力无影响,但会降低其强度承载力 C.残余应力对轴压构件的强度和稳定承载力均无影响 D.残余应力会降低轴压构件的强度和稳定承载力 9.初始弯曲和荷载的初始偏心对轴心受压构件整体稳定承载力的影响为( A ) A.初弯曲和初偏心均会降低稳定承载力B.初弯曲和初偏心均不会影响稳定承载力C.初弯曲将会降低稳定承载力,而初偏心将不会影响稳定承载力 D.初弯曲将不会影响稳定承载力,而初偏心将会降低稳定承载力 10.理想弹性轴心受压构件的临界力与截面惯性矩I和计算长度0l的关系为( D )A.与I成正比,与0l成正比B.与I成反比,与0l成反比 C.与I成反比,与20l成正比D.与

《数据结构》课程教学大纲

《数据结构》课程教学大纲 Data Structure 执笔人:编写日期: 一、课程基本信息 1. 课程编号: 2. 课程性质/类别:必修课 / 专业主干课 3. 学时/学分: 48 学时(另实验16学时) / 4 学分 4. 适用专业:计算机科学与技术、软件工程、网络工程、信息管理与信息系统等专业 二、课程教学目标及学生应达到的能力 数据结构课程是计算机相关专业的专业基础课、必修课程,主要介绍用计算机解决一系列问题特别是非数值信息处理问题时所用的各种组织数据的方法、存储数据结构的方法以及在各种结构上执行操作的算法。通过本课程的学习,要求学生掌握各种数据结构的特点、存储表示、运算方法以及在计算机科学中最基本的应用,培养、训练学生选用合适的数据结构和编写质量高、风格好的应用程序的能力,培养学生分析问题、解决问题的能力,并为后续课程的学习打下良好的理论基础和实践基础。 三、课程教学容与基本要求 (一)绪论( 3 学时) 1.主要容: (1)介绍什么是数据结构; (2)基本概念和术语: 数据、数据元素、数据对象,以及数据结构的定义、逻辑结构、物理结构(理解)数据类型、抽象数据类型; (3)抽象数据类型的表示与实现; (4)算法和算法分析: 算法的概念、算法设计的要求以及算法效率的度量。 2.基本要求 (1)了解学习数据结构的重要性; (2)掌握数据结构的定义及相关概念和术语; (3)了解抽象数据类型的定义、表示与实现方法; (4)理解算法的概念、特点并掌握度量其效率的基本方法。 3.自学容: 类C语言的书写规。 (二)线性表( 6 学时) 1.主要容: (1)线性表的抽象数据类型定义和相关概念:数据项、记录、文件等; (2)线性表顺序存储表示和基本操作的实现; (3)线性表的链式存储表示和基本操作的实现; (4)稀疏多项式的抽象数据类型定义、表示和加法的实现。

数据结构课程设计报告(完结)

《数据结构》课程设计手册 一、 栈的使用 (一)需求分析 本程序通过java 语言完成栈的构造,对堆栈的数据进行基本的存储操作。具体包括,数据的入栈、出栈、读取等。 入栈操作:要求用户从键盘出入要进栈的数值或字符,对栈满的情况作出提示。 出栈操作:删除栈顶元素,并将删除的数据或字符在运行结果中显示。对栈空的情况作出提示。 读取操作:在插入和删除的任意阶段都可讲栈中的元素读取出来,能够实现对栈中的数据元素个数进行统计。 (二)概要设计 1.为了实现上述程序功能,需要定义栈的数据类型有: static int MAX=5; static String[] item =new String[MAX]; static int top; 2.本程序包含4个函数 Push() 初始条件:栈未满 操作结果:往栈中插入数据; Pop() 初始条件:存在非空栈 操作结果:将栈中的数据删除; Get() 初始条件:存在非空栈 操作结果:显示非空栈中的所有元素; Main() 操作结果:调用以上函数。 程序流程图: Main() Pop() Push() Get()

(三)详细设计 具体代码见Stack.java 基本操作: Stack()构造一个空的栈,初始状态top的指针为-1; 入栈方法public static void push()。该方法中,首先判断是否栈满(top>=MAX-1),如果栈满,则输出提示语“栈满 ,栈中最多能容纳5个元素”,否则从键盘输入数据,并且top指针加1。 出栈方法public static void pop()。首先判断是否栈空(top<0),如果栈空,则输出提示信息“栈空 ,没有可操作的元素”,否则删除栈顶元素。Top指针减1。

相关文档
最新文档