数据结构Word文档格式.docx

上传人:b****5 文档编号:20490795 上传时间:2023-01-23 格式:DOCX 页数:12 大小:139.15KB
下载 相关 举报
数据结构Word文档格式.docx_第1页
第1页 / 共12页
数据结构Word文档格式.docx_第2页
第2页 / 共12页
数据结构Word文档格式.docx_第3页
第3页 / 共12页
数据结构Word文档格式.docx_第4页
第4页 / 共12页
数据结构Word文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据结构Word文档格式.docx

《数据结构Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

数据结构Word文档格式.docx

return1;

//插入成功

}

直接选择排序的算法

voidSelectSort(datalist<

&

list)

for(inti=0;

i<

list.CurrentSize-1;

i++) 

____SelectExchange(list,i)____________________;

}

viodSelectExchange(datalist<

list,constinti){

intk=i;

for(intj=i+1;

j<

list.CurrentSize;

j++)

if(list.Vector[j].getKey()<

list.Vector[k].getKey())

___ 

_____k=i_____________;

//当前具有最小关键码的对象 

if(k!

=i)Swap(list.Vector[i],list.Vector[k]);

//交换

3、删去链表中除表头结点外的所有其他结点

voidList<

:

MakeEmpty(){

ListNode<

*q;

while(first→link!

=NULL){

_______q=first->

link 

___________________;

__________first->

link=q->

link________________;

//将表头结点后第一个结点从链中摘下

deleteq;

//释放它

last=first;

//修改表尾指针

4、基于有序顺序表的折半搜索递归算法(Element为有序顺序表)

intorderedList<

BinarySearch(constType&

x,constintlow,constinthigh)const

{

intmid=-1;

if(low<

=high){

________mid=(low+high)/2__________________;

if(Element[mid].getKey()<

x)

mid=BinarySearch(______x,mid+1,high____________________);

elseif(Element[mid].getKey()>

x) 

mid=BinarySearch(x,low,mid-1);

returnmid;

5、在顺序表中第 

个位置插入新元素 

intinsert(sqlist*L,datatypex,inti)

{intj;

if(L->

n==maxsize) 

{cout<

<

”表满,不能插入!

(上溢)\n”;

return–1;

if( 

i<

=maxsize_____________ 

) 

”非法插入位置!

\n”;

return0;

for(j=L->

n;

=i;

L->

data[j]=L->

data[j-1];

//节点后移

______ 

data[j]=x__________ 

;

//插入x

n++;

//修改表长

Return1;

6、直接选择排序的算法

voidSelectSort(listR,intn)

{inti,j,k;

for(i=1;

=n-1;

i++) 

//n-1趟排序

_____k=i____________ 

for(j=i+1;

=n,j++) 

//在当前无序区中找键值最小的记录R[k]

if(R[j].key<

R[k].key) 

______k=j___________ 

=i) 

{R[0]=R[i];

R[i]=R[k];

R[k]=R[0];

二、简答题

1.线性表可用顺序表或是链表存储,此两种存储表示各有哪些优缺点?

答:

顺序存储表示是将数据元素存放于一个连续的存储空间中,实现顺序存取或(按下标)直接存取。

它的存储效率高,存取速度快。

但它的空间大小一经定义,在程序整个运行期间不会发生改变,因此,不易扩充。

同时,由于在插入或删除时,为保持原有次序(没有规定元素进栈顺序),平均需要移动一半(或近一半)元素,修改效率不高。

链接存储表示的存储空间一般在程序的运行过程中动态分配和释放,且只要存储器中还有空间,就不会产生存储溢出的问题。

同时在插入和删除时不需要保持数据元素原来的物理顺序,只需要保持原来的逻辑顺序,因此不必移动数据,只需修改它们的链接指针,修改效率较高。

但存取表中的数据元素时,只能循链顺序访问,因此存取效率不高。

2.设有一个输入数据的序列是{46,25,78,62,12,37,70,29},试画出从空树起,逐个输入各个数据而生成的二叉搜索树。

3.用广义表的带表头结点的存储表示法表示下列集合。

A=()

B=(6,2)

C=(‘a’,(5,3, 

‘x’))

D=(B,C,A)

E=(B,D)

4.上图所示为一有向图,请给出该图的下述要求:

(1)给出每个顶点的入度和出度;

顶点

1

2

3

4

5

6

入度

出度

(2)以结点3为起始结点,分别画出该图的一个深度优先生成树和一个宽度优先生成树;

深度优先:

宽度优先:

(3)给出该图的邻接矩阵;

(4)给出该图的邻接表;

邻接表

5. 

对于如上图所示的有向图,试写出:

(1) 

从顶点①出发进行深度优先搜索所得到的深度优先生成树;

(2) 

从顶点②出发进行广度优先搜索所得到的广度优先生成树;

6.已知二叉树的先序、中序和后序序列分别如下,但其中有一些已模糊不清,试构造出该二叉树。

先序序列 _BC_EF__

中序序列 BDE_AG_H

后序序列 _DC_GH_A

通过后序最后一个是A,这可得到:

先序序列ABC_EF_

先序的第二个元素是B,所以B是A的左子树根节点,由中序B在最前,知道其他元素都在B的右子树上,所以,转成后序序列为(DE_)B(G_H)A,对比已有的后序序列_DC_GH_A

得后序序列为:

EDCBGHFA,中序序列为:

BDECAGFH

所以二叉树为:

7.分析下列两个程序段的运行时间(时间复杂度)。

void 

mystery(intn)

inti,j,k;

for(i=1;

i<

n;

i++)

for(j=i+1;

j<

=n;

j++)

for(k=1;

k<

=j;

k++);

答:

时间复杂度:

O(n^3)

odd(intn)

inti,j,x=0,y=0;

ifodd(i)

for(j=i;

j++) 

x++;

for(j=1;

=i;

y++;

O(n^2)

8.有一组数据:

25,50,70,21,4,18,100,43,7,12。

现采用汽泡排序算法进行排序,写出每趟排序的结果,并标明第一趟数据的移动情况。

第一趟:

25,50,70,21,4,18,100,43,7,12

25,50,21,70,4,18,100,43,7,12

25,50,21,4,70,18,100,43,7,12

25,50,21,4,18,70,100,43,7,12

25,50,21,4,18,70,43,100,7,12

25,50,21,4,18,70,43,7,100,12

25,50,21,4,18,70,43,7,12,100

第二趟:

25,21,4,18,50,43,7,12,70,100

第三趟:

21,4,18,25,43,7,12,50,70,100

第四趟:

4,18,21,25,7,12,43,50,70,100

第五趟:

4,18,21,7,12,25,43,50,70,100

第六趟:

4,18,7,12,21,25,43,50,70,100

第七趟:

4,7,12,18,21,25,43,50,70,100

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1