序填空复习题_精品文档_精品文档Word格式文档下载.doc

上传人:b****2 文档编号:13275324 上传时间:2022-10-09 格式:DOC 页数:13 大小:73.50KB
下载 相关 举报
序填空复习题_精品文档_精品文档Word格式文档下载.doc_第1页
第1页 / 共13页
序填空复习题_精品文档_精品文档Word格式文档下载.doc_第2页
第2页 / 共13页
序填空复习题_精品文档_精品文档Word格式文档下载.doc_第3页
第3页 / 共13页
序填空复习题_精品文档_精品文档Word格式文档下载.doc_第4页
第4页 / 共13页
序填空复习题_精品文档_精品文档Word格式文档下载.doc_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

序填空复习题_精品文档_精品文档Word格式文档下载.doc

《序填空复习题_精品文档_精品文档Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《序填空复习题_精品文档_精品文档Word格式文档下载.doc(13页珍藏版)》请在冰豆网上搜索。

序填空复习题_精品文档_精品文档Word格式文档下载.doc

/*p为工作指针,准备输出链表*/

do

{printf(“%d\n”,(3));

(4);

}while((5));

}

答案:

(1)&

a

(2)d×

next=NULL

(3)p->

data

(4)p=p->

next

(5)p!

=NULL

2.以下函数在head为头指针的具有头结点的单向链表中删除第i个结点,

structnode

{intdata;

structnode*next;

};

typedefstructnodeNODE

intdelete(NODE*head,inti)

{

NODE*p,*q;

intj;

q=head;

j=0;

while((q!

=NULL)&

&

(___

(1)_____))

___

(2)_____;

j++;

if(q==NULL)

return(0);

p=___(3)_____;

___(4)_____=p->

next;

free(___(5)_____);

return

(1);

(1)j<

i-1

(2)q=q->

(3)q->

(4)q->

(5)p

3.将新元素插入到线性表中的第i位,MAX是数组的个数,a[0]用以存放线性表长度,b存放待插入的元素值,i存放插入的位置,n存放线性表长度

inta[MAX];

inti,j,b,n;

scanf(“%d%d%d”,&

b,&

i,&

n);

for(j=1;

j<

=n;

j++)

scanf(“%d”,&

a[j]);

a[0]=n;

for(j=n;

(1);

j--)

(2);

(3);

(4);

=a[0];

printf(“%5d\n”,a[j]);

(1)j>

=i

(2)a[j+1]=a[j]

(3)a[i]=b

(4)a[0]=n+1

4.用头插法建立带头结点且有n个结点的单向链表的算法

NODE*create(n)

NODE*head,*p,*q;

inti

p=(NODE*)malloc(sizeof(NODE));

(1);

(2);

(3);

for(i=1;

i<

i++)

{

p=(NODE*)malloc(sizeof(NODE));

p->

data=i;

if(i==1)

(4);

else

{

(5);

(6);

}

}

return(head);

(1)head=p

(2)p->

(3)q=p

(4)p->

(5)p->

next=q->

(6)q->

next=p

一、栈

1.以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针

structnode

{ElemTypedata;

structnode*top;

voidPush(ElemTypex)

{

structnode*p;

p=(structnode*)malloc(___

(1)_____);

p->

data=x;

___

(2)_____;

}

(1)sizeof(structnode)

next=top

(3)top=p

二、队列

1.以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针

structnode*front,*rear;

voidInQueue(ElemTypex)

{

structnode*p;

p=(structnode*)___

(1)_____;

p->

p->

next=NULL;

___

(2)_____;

rear=___(3)_____;

}

(1)malloc(sizeof(structnode))

(2)rear->

(3)p

2.以下函数为链队列的出队操作(链队列带有头结点),出队结点的数据域的值由x返回,front、rear分别是链队列的队头、队尾指针

ElemTypeOutQueue()

{

ElemTypex;

if(___

(1)_____){

printf("

队列下溢错误!

\n"

);

exit

(1);

}

else{

structnode*p=front->

x=p->

data;

front->

next=___

(2)_____;

if(p->

next==NULL)rear=front;

free(p);

___(3)_____;

}

(1)front==rear

(3)return(x)

三、树

1.以下程序是先序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。

voidPreorder(structBTreeNode*BT)

{if(BT!

=NULL){

(1);

(2);

(3);

}

(1)printf(“%c”,BT->

data)

(2)Preorder(BT->

left)

(3)Preorder(BT->

right)

2.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。

voidInorder(structBTreeNode*BT)

(1);

(2);

(3);

(1)Inorder(BT->

(2)printf(“%c”,BT->

(3)Inorder(BT->

3以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。

voidPostorder(structBTreeNode*BT)

(1)Postorder(BT->

(2)Postorder(BT->

(3)printf(“%c”,BT->

data);

四、图

五、排序

1.以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行排序,完成程序中的空格部分,其中n是元素个数,要求按升序排列。

voidbsort(NODEa[],intn)

{NODEtemp;

inti,j,flag;

for(j=1;

(1);

j++);

{flag=0;

for(i=1;

(2);

if(a[i].key>

a[i+1].key)

{flag=1;

temp=a[i];

(3);

(4);

if(flag==0)break;

}

程序中flag的功能是(5)

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

当前位置:首页 > 考试认证 > 从业资格考试

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

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