




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
頁腳
..
數(shù)據(jù)結構編程題
1)題1
完成函數(shù)f的實現(xiàn),參數(shù)a為int數(shù)組首地址,len為數(shù)組長度,要求函數(shù)f能夠將數(shù)組元素重新排列奇數(shù)在前,偶數(shù)
在后。
答案:
voidf(int*a,intlen){
inti,j;
for(i=0;i<len-1;i++){
intflg=1;
for(j=0;j<len-1-i;j++){
if(a[j]%2==0&&a[j+1]%2){
inttmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
flg=0;
}
}
if(flg)break;
}
}
2)題2
完成函數(shù)f的實現(xiàn),參數(shù)a為int數(shù)組的首地址,len為數(shù)組長度,要求函數(shù)f能夠返回數(shù)組最大元素的個數(shù)。答案:
intf(constint*a,intlen){
inti,max=0,t=1;//max用于保存最大元素的序號,cnt用于記錄個數(shù)
for(i=1;i<len;i++)
if(a[max]<a[i]){
max=i;
cnt=1;
}elseif(a[max]==a[i]){
++cnt;
}
returnt;
}
..
3)題3
完成函數(shù)f的實現(xiàn),參數(shù)a為int數(shù)組的首地址,len為數(shù)組長度,要求函數(shù)f能夠將數(shù)組元素按照個位排降序,同時
要求使用的算法要保證排序穩(wěn)定性。
答案:
解法一:(插入排序)
voidf(int*a,intlen){
inti,j,tmp;
for(i=1;i<len;++i){
tmp=a[i];
if(!(a[i]%10>a[0]%10)){//對某數(shù)進行%10運算,即可獲取其個位上的值for(j=i-1;tmp%10>a[j]%10;--j)
a[j+1]=a[j];
a[j+1]=tmp;
}else{
for(j=i;j>0;--j)
a[j]=a[j-1];
a[0]=tmp;
}
}
}
解法二:(冒泡排序)
voidf(int*a,intlen){
inti,j,flg,tmp;
for(i=0;i<len-1;++i){
flg=0;
for(j=0;j<len-i-1;j++)
if(a[j+1]%10>a[j]%10){
tmp=a[j+1];
a[j+1]=a[j];
a[j]=tmp;
}
if(flg=0)
break;
}
}
頁腳
..
4)題4
完成函數(shù)f的實現(xiàn),參數(shù)a為int數(shù)組首地址,len數(shù)組長度,要求函數(shù)f返回數(shù)組中元素是否構成大根堆,是返回1,否返回0.
答案:
_Boolf(constint*a,intlen){
inti;
for(i=(len-1)/2;i>=0;--i){
if(a[i]<a[2*(i+1)-1]||a[i]<a[2*(i+1)]){
returnfalse;
}
}
returntrue;
}
5)題5
完成函數(shù)f的實現(xiàn),參數(shù)a為int數(shù)組首地址,len為數(shù)組長度,x為一個整數(shù),假設數(shù)組元素已排好降序,要求函數(shù)f運用折半查找算法,查找數(shù)組中是否存在x,存在返回1,不存在返回0。
答案:
_Boolf(constint*a,intlen,intx){
intlow=0,high=len-1,mid=(low+high)/2;
while(low<high){
if(a[mid]==x){
returntrue;
}elseif(a[mid]<x){
high=mid;
}elseif(a[mid]>x){
low=mid+1;
}
mid=(low+high)/2;
}
returnfalse;
}
頁腳
..
6)題6
完成函數(shù)f的實現(xiàn),參數(shù)s和t分別表示兩個字符串首地址,要求函數(shù)f返回字符串t在字符串s中出現(xiàn)的次數(shù),例如:f(“aaa”,“aa”)返回2。
答案:
intf(constchar*s,constchar*t){
intlen1=strlen(s),len2=strlen(t),i,num=0;
for(i=0;i<len1-len2+1;++i)
if(strncmp(s+i,t,len2)==0)
++num;
returnnum;
}
7)題7
代碼中,結構體Node表示雙鏈表節(jié)點,其中p指向前驅,n指向后繼;結構體List表示鏈表,指針head指向鏈表頭節(jié)點,tail指向鏈表尾節(jié)點,當鏈表為空時,head和tail為0(NULL)。完成函數(shù)f的實現(xiàn),參數(shù)lp表示鏈表結構的指針,要求函數(shù)f能夠刪除lp指向鏈表的尾節(jié)點,并釋放存(假設鏈表節(jié)點存來自堆區(qū)),函數(shù)f的返回值表示刪除操作是否成功,成功返回1,否則返回0。
答案:
_Boolf(List*lp){
if(lp->tail==NULL)
returnfalse;
Node*cur=lp->tail;
lp->tail=cur->p;
if(lp->tail==NULL)
lp->head=NULL;
else
lp->tail->n=NULL;
free(cur);
returntrue;
}
頁腳
..
8)題8
代碼中,結構體Node表示二叉樹節(jié)點,其中l(wèi)eft指向左孩子,right指向右孩子;完成函數(shù)f的實現(xiàn),參數(shù)root表示
二叉樹根節(jié)點指針,要求函數(shù)f返回該樹的深度,提示可用先序遍歷。
答案:
intf(constNode*root){
if(root==NULL)
return0;
intl=f(root->left);
intr=f(root->right);
returnl>r?l+1:r+1;
}
9)題9
代碼中,結構體Node表示二叉樹節(jié)點,其中l(wèi)eft指向左孩子,right指向右孩子;完成函數(shù)f的實現(xiàn),參數(shù)root表示
二叉樹根節(jié)點指針,要求函數(shù)f釋放該樹全部節(jié)點占用的存(假設節(jié)點存來自堆區(qū)),提示可用后序遍歷。
答案:
intf(Node*root){
if(root==NULL)
return;
f(root->left);
f(root->right);
free(root);
}
10)題10
代碼中,結構體Node表示單鏈表的節(jié)點,data是整型數(shù)據(jù)域,next是指向后繼的指針;完成函數(shù)f的實現(xiàn),參數(shù)head
是某鏈表的頭節(jié)點,參數(shù)x表示一個整數(shù),要求函數(shù)f返回鏈表中數(shù)據(jù)域大于x的節(jié)點的個數(shù)。
答案:
intf(Node*head,intx){
Node*p;
intt=0;
for(p=head;p!=NULL;p=p->next)
if(p->data>x)
cnt++;
returnt;
}
..
11)題11
完成函數(shù)f的實現(xiàn),參數(shù)n表示正整數(shù),參數(shù)a表示二維數(shù)組首地址,a表示的二維數(shù)組用于存儲n個系欸但有向圖的鄰接矩陣,a[i][j]==1時表示節(jié)點i到節(jié)點j有邊,函數(shù)f需要返回有向圖中出度大于入度的頂點的個數(shù)。
答案:
intf(intn,const_Boola[n][n]){
inti,j,t=0;
for(i=0;i<n;i++){
intin=0,out=0;
for(j=0;j<n;j++)
if(a[j][i])
in++;
if(a[i][j])
out++;
if(out>in)
cnt++;
}
returnt;
}
12)題12
完成函數(shù)f的實現(xiàn),參數(shù)n表示正整數(shù),參數(shù)a表示一個一位數(shù)組首地址,i表示一個正整數(shù)(0<=i<n),a表示的一維數(shù)組用于存儲n個節(jié)點無向圖的鄰接矩陣的上三角壓縮存儲,函數(shù)f需要返回無向圖中節(jié)點i的度。
答案:
intf(intn,const_Boola[],inti){
intj,k=0;
intm=n-i;
for(j=0;j<i;j++)
k+=(n--);
intt=0;
for(j=k;j<k+m;j++)
if(a[j])
cnt++;
returnt;
}
頁腳
..
13)題13
完成函數(shù)f的實現(xiàn),參數(shù)s表示字符串首地址,字符串中僅有‘(’和‘)’,函數(shù)f返回一個布爾值,當字符串中的‘(’
和‘)’恰好匹配時返回真,否則返回假。
答案:
_Boolf(constchar*s){
intstack=0,i;//stack表示棧,stack=0時??說or(i=0;s[i]!='\0';i++)
if(s[i]=='{')
stack++;
elseif(s[i]=='}'&&stack>0)
stack--;
else
returnfalse;
if(stack==0)
returntrue;
returnfalse;
}
14)題14
完成函數(shù)f的實現(xiàn),參數(shù)s1和s2分別表示兩個字符串首地址,要求函數(shù)f實現(xiàn)不區(qū)分大小寫字母的字符串比較,當s1
比s2小時f返回負數(shù),當s1比s2大時返回正數(shù),字母串相等返回0。
答案
intf(constchar*s1,constchar*s2){
inti;
for(i=0;s1[i]!='\0'||s2[i]!='\0';i++)
if(s1[i]==s2[i]){
continue;
}elseif(s1[i]>='A'&&s1[i]<='Z'||s1[i]>='a'&&s1[i]<='z'&&s2[i]>='A'&&s2[i]<='Z'||s2[i]>='a'&&s2[i]<='z'
&&abs(s1[i]-s2[i])==abs('A'-'a')){
continue;
}elseif(s1[i]>s2[i]){
return1;
}else{
return-1;
}
return0;
}
頁腳
..
15)題15
完成函數(shù)f的實現(xiàn),參數(shù)a、b、c表示三個int數(shù)組的首地址,la和lb表示數(shù)組a和b的長度,假設數(shù)組a和b存在升序。要求函數(shù)f完成將數(shù)組a和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度茶樓租賃合同茶樓與茶藝培訓學校合作框架協(xié)議
- 二零二五年度在線教育平臺師資聘用協(xié)議
- 食用菌種植技術服務合同
- 英語語法中的定語從句詳解:九年級英語語法基礎強化教案
- 幼兒園繪本閱讀感悟分享
- 產(chǎn)品分銷銷售服務條款及目標協(xié)定
- 數(shù)據(jù)驅動的環(huán)保產(chǎn)業(yè)發(fā)展戰(zhàn)略協(xié)議
- 提升職場技能與素質
- 數(shù)理化習題集:高三化學知識點強化練習計劃
- 家電產(chǎn)品渠道經(jīng)銷協(xié)議
- 人工智能在維修行業(yè)的應用
- 福建省泉州市第五中學2023-2024學年八年級下學期期中語文試題
- 2024CSCO惡性腫瘤患者營養(yǎng)治療指南解讀
- 自我解壓與情緒管理課件
- 2024年時政必考試題庫ab卷
- 語法選擇10篇(名校模擬)-2024年中考英語逆襲沖刺名校模擬真題速遞(廣州專用)
- 通達信公式函數(shù)說明大全
- 體育初中學生學情分析總結報告
- MOOC 中國文化概論-武漢大學 中國大學慕課答案
- 高三心理健康輔導講座省公開課一等獎全國示范課微課金獎
- 《工程建設標準強制性條文電力工程部分2023年版》
評論
0/150
提交評論