試題三
假設以帶頭結點的單循環(huán)鏈表作非遞減有序線性表的存儲結構。函數deleteklist(LinkList head)的功能是刪除表中所有數值相同的多余元素,并釋放結點空間。
例如:鏈表初始元素為:
(7,10,10,21,30,42,42,42,51,70)
經算法操作后變?yōu)椋?/p>
(7,10,21,30,42,51,70)
【函數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】
已知一棵完全二叉樹存放于一個一維數組T[n]中,T[n]中存放的是各結點的值。下面的程
序的功能是:從T[0]開始順序讀出各結點的值,建立該二叉樹的二叉鏈表表示。
【函數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)
{/*根據順序存儲結構建立二叉鏈表*/
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
試題四
閱讀下列函數說明和C函數,將應填入 n 處的字句寫在答題紙的對應欄內。
[函數2.1說明]
函數strcat(char s[], char t[])的功能是:將字符串t復制連接字符串s的尾部,并返回新
字符串的首地址作為函數值。例如:若s=“abcd”,t=“efg”,則新字符串應該是“abcdefg”。
[函數2.1]
char *strcat(char s[], char t[])
{ char *p;
p = s + strlen(s)-1
while( (1) ) {
(2) ;
}
*p = ‘\0’;
return s;
}
[函數2.2說明]
函數f(char *str, char del)的功能是:將非空字符串str中的指定字符del刪除,形成一個
新字符串仍存放在str所指內存單元中。
例如若str的值為“33123333435”,del的值為‘3’,調用此函數后,新字符串為:“1245”。
[函數2.2]
void f(char *str, char del)
{
int i, j, len;
len=strlen(str);
i=j=0;
while(iif ( (3) )
(4) = str[i];
i++;
}
(5) ;
}
想要了解更多的軟件工程師考試試題嗎?想要第一時間了解軟件工程師考試相關資訊嗎?想要得到更多軟件工程師考試培訓相關信息資料嗎?來唯學網吧,唯學網是一個大型的教育考試培訓平臺,唯學網計算機培訓欄目軟件工程師考試培訓頻道會第一時間為大家更新提供最新考試內容!敬請大家關注!如有任何疑問也可在線留言,小編會為您在第一時間解答!