第 1 頁:試題一 |
第 2 頁:試題二 |
第 3 頁:試題三 |
第 4 頁:試題四 |
第 5 頁:試題五 |
試題三
假設以帶頭結點的單循環(huán)鏈表作非遞減有序線性表的存儲結構。函數(shù)deleteklist(LinkList head)的功能是刪除表中所有數(shù)值相同的多余元素,并釋放結點空間。
例如:鏈表初始元素為:
(7,10,10,21,30,42,42,42,51,70)
經(jīng)算法操作后變?yōu)椋?/P>
(7,10,21,30,42,51,70)
【函數(shù)1】
void deleteklist(LinkList head)
{
LinkNode*p,*q;
p=head->next;
while(p!=head)
{
q=p->next;
while( (1) )
{
(2) ;
free(q);
q=p->next;
}
p=p->next;
}
}
【說明2】
已知一棵完全二叉樹存放于一個一維數(shù)組T[n]中,T[n]中存放的是各結點的值。下面的程
序的功能是:從T[0]開始順序讀出各結點的值,建立該二叉樹的二叉鏈表表示。
【函數(shù)2】
#include
typedef struct node {
int data;
stuct node leftChild,rightchild;
}BintreeNode;
typedef BintreeNode*BinaryTree;
void ConstrncTree(int T[],int n,int i,BintreeNode*&ptr)
{
if(i>=n) (3) ;∥置根指針為空
else
{
ptr=-(BTNode*)malloc(sizeof(BTNode))
ptr->data=T[i];
ConstrucTree(T,n,2*i+1, (4) );
ConstrucTree(T,n, (5) ,ptr->rightchild);
}
}
main(void)
{/*根據(jù)順序存儲結構建立二叉鏈表*/
Binarytree bitree;int n;
printf("please enter the number of node:\n%s";n);
int*A=(int*)malloc(n*sizeof(int));
for(int i=0;i for(int i=0;i ConstructTree(A,n,0,bitree); } 答案: (1)q!=head &&q->data==p->data (2)p->next=q->next (3)ptr=NULL (4)ptr->leftchild (5)2*i+2
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |