久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

北京科技大學數據結構試驗報告(附錄含代碼)

時間:2019-05-12 08:38:56下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《北京科技大學數據結構試驗報告(附錄含代碼)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《北京科技大學數據結構試驗報告(附錄含代碼)》。

第一篇:北京科技大學數據結構試驗報告(附錄含代碼)

一、1)功能描述

輸入數據(設為整型)建立單鏈表,并求相鄰兩節點data值之和為最大的第一節點。2)詳細設計

遵循鏈表建立的基本思想,建立一個新的鏈表,H為表頭,r為新節點,p為表尾節點指針,沒存入一個新的數據則申請一個新的節點,知道沒有數據輸入,利用循環和打擂臺法,比較和的大小,并輸出。3)測試分析

程序調試完成后,選取兩組數據進行測試,都得出了正確結果(數據以0為結束符,若有相同和,則取第一組)結果截圖

4)心得體會

通過做第一題,學習到鏈表的建立以及鏈表里指針的使用,并且復習了比較法里面的打擂臺法。

二、1)功能描述

實現算術表達式求值程序(棧的運用),輸入中綴表達式,可將其轉換成后綴表達式 2)詳細設計

本題目的程序是根據課本上的程序改進之后得出的,課本上有完整的程序,但是有bug,按照課本上的程序,結果會出現“燙燙燙燙燙”,原因是對于優先級的比較沒有處理好,因此加了兩行代碼,將優先級的比較處理好,即現在的程序。3)測試分析

程序調試完成后,選取題目所給的式子進行測試,得出了正確后綴表達式結果 結果截圖

4)心得體會

通過做第二題,對于課本上的知識表示得出“實踐出真知”的真理,即使書上的東西也不一定就是正確的,尤其是代碼,最好是個人自己真正實踐一下。

三、1)功能描述

實現鏈式隊列運算程序(隊列的運用)2)詳細設計

本題目是隊列相關應用,隊列和棧是相反的,隊列是先進的先出,因此輸入12345,先出的是1,本著隊列的這一特性,根據課本所學的隊列的算法,設計了如下程序。3)測試分析

程序調試完成后,選取12345進行測試,后綴加0,則一個字符出隊,只輸入0,則繼續出隊,輸入@,則打印剩余全部元素。結果截圖

4)心得體會

通過做第三題,對于隊列的特點有了更加深刻的認識,尤其區分隊列與棧的不同點,需要特別注意。

四、1)功能描述

①構造關于F的Huffman樹;

②求出并打印D總各字符的Huffman編碼。2)詳細設計

本題目是Huffman樹的應用以及Huffman編碼的應用,參照課本上關于Huffman樹的建立以及Huffman編碼的應用的實現,將所給數據依權值最小原則建立Huffman樹,并實現Huffman編碼。3)測試分析

程序調試完成后,給出數據abcdefgh,相應頻率為12345678,運行代碼得出結果如圖。同時選取另一組數據測試也得出了正確結論

結果截圖

4)心得體會

通過做第四題,對于Huffman樹有了更加深刻的體會,同時練習也使得對課本知識進行實踐,有助于更好的理解Huffman樹的算法。

五、1)功能描述

設英文句子:“everyone round you can hear you when you speak.”(1)依次讀入句中各單詞,構造一棵二叉排序樹;(2)按LDR遍歷此二叉排序樹。

LDR: can everyone hear round speak when you(有序)

2)詳細設計

本題目是有關二叉樹的建立和中序遍歷的,二叉樹作為數據存儲一個很重要的結構,它的建立也是很重要的。本題目代碼設計上采用課本上的對于二叉樹建立的方法,將所給單詞以二叉樹形式建立并存儲,然后中序遍歷的到字典順序。3)測試分析

程序調試完成后,給出單詞串everyone round you can hear you when you speak,運行代碼得出中序遍歷結果如圖。結果截圖

4)心得體會

通過做第五題,練習運用二叉樹模型解決了一些實際問題如現實中字典的編排問題,在熟悉算法的基礎上,同時得出結論,好的算法可以應用與實際生活生產,使之更為便捷。

附錄 程序代碼 實驗一:

#include“stdio.h” #include“malloc.h” typedef struct node {

int data;

struct node *next;}list,*List;List Creatlist()

//建立鏈表函數 { List H,p,r;

//H為表頭,r為新節點,p為表尾節點指針

H=(List)malloc(sizeof(list));

//建立頭節點

r=H;

p=(List)malloc(sizeof(list));

//申請新節點

while(scanf(“%d”,p)&&p->data!=0)//輸入數據,直到為零(結束標志)

{

r->next=p;//新節點鏈入表尾

r=p;

p=(List)malloc(sizeof(list));

} r->next=NULL;//將尾節點的指針域置空

return H;

//返回已創建的頭節點 } List Adjmax(List H)//比較相鄰兩數之和

{

//返回相鄰兩數之和最大的第一個數指針

List p,r,q;int sum=0;p=H->next;if(H->next ==NULL)//判斷是否為空

{

printf(“Empty List!”);

q=(List)malloc(sizeof(list));

q->data =0;}

while(p!=NULL)//比較相鄰兩數之和

{

r=p->next;

if(p&&r)

if(r->data+p->data>sum)

{

q=p;

sum=r->data +p->data;}//不斷賦給sum新的最大值

else;

p=p->next;} return q;} int main(){ char ch;printf(“/// 請輸入整形數據,以空格隔開,0結束。/// n”);printf(“Ready? nY/N(enter 'y' or 'Y' to continue)n”);while(scanf(“%c”,&ch)&&(ch=='Y'||ch=='y'))

{

List H,pmax;

H=Creatlist();

pmax=Adjmax(H);

printf(“相鄰兩數之和最大的第一個數為:%dnContinue?

Y/N

free(H);

scanf(”%c“,&ch);} return 0;}

”,pmax->data);實驗二:

#include #include #include typedef struct node //棧節點類型 { char data;//存儲一個棧元素

struct node *next;//后繼指針 }snode,*slink;int Emptystack(slink S)//檢測棧空 { if(S==NULL)return(1);else return(0);} char Pop(slink*top)//出棧 { char e;slink p;if(Emptystack(*top))return(-1);//棧空返回

else {

e=(*top)->data;//取棧頂元素

p=*top;*top=(*top)->next;//重置棧頂指針

free(p);return(e);} } void Push(slink*top,char e)//進棧 { slink p;p=(slink)malloc(sizeof(snode));//生成進棧p節點

p->data=e;//存入元素e p->next=*top;//p節點作為新的棧頂鏈入

*top=p;} void Clearstack(slink*top)//置空棧 { slink p;while(*top!=NULL){

p=(*top)->next;

Pop(top);//依次彈出節點直到棧空

*top=p;} *top=NULL;} char Getstop(slink S)//取棧頂 { if(S!=NULL)return(S->data);return(0);} //符號優先級比較

int Precede(char x,char y)//比較x是否“大于”y { switch(x){

case '(':x=0;break;case '+': case '-':x=1;break;case '*': case '/':x=2;break;default: x=-1;} switch(y){ case '+': case '-':y=1;break;case '*': case '/':y=2;break;case '(':y=3;break;default: y=100;} if(x>=y)return(1);else return(0);} //中后序轉換

void mid_post(char post[],char mid[])//中綴表達式mid到后綴表達式post的轉換的算法 { int i=0,j=0;char x;

slink S=NULL;//置空棧 Push(&S,'#');//結束符入棧 do { x=mid[i++];//掃描當前表達式分量x switch(x){ case '#':

{ while(!Emptystack(S))

post[j++]=Pop(&S);

}

}break;case ')':

{ while(Getstop(S)!='(')

post[j++]=Pop(&S);//反復出棧直至遇到'('

Pop(&S);//退掉'('

}break;case '+': case '-': case '*': case '/': case '(':

{ while(Precede(Getstop(S),x))//棧頂運算符(Q1)與x比較

post[j++]=Pop(&S);//Q1>=x時,輸出棧頂符并退棧

Push(&S,x);//Q1

}break;default:post[j++]=x;//操作數直接輸出

} }while(x!='#');post[j]='

主站蜘蛛池模板: 女人和拘做爰正片视频| 天天做天天爱天天做天天吃中| 午夜精品久久久久久不卡| 好大好硬好爽免费视频| 天天做天天爱夜夜爽女人爽| 国产精品久久久久久成人影院| 一本久道综合在线无码人妻| 无码成人片在线播放| 亚洲色www成人永久网址| 亚洲精品国产摄像头| 欧美日韩人成视频在线播放| 乱人伦视频中文字幕| 被窝影院午夜无码国产| 换脸国产av一区二区三区| 国产精品久久久久久久久鸭无码| 麻花传媒在线mv免费观看视频| 大片视频免费观看视频| 欧美人与动人物牲交免费观看久久| 亚洲精品自在在线观看| 久久久亚洲综合久久久久87| 国产suv精品一区二人妻| 久久久久99精品国产片| 国产熟妇搡bbbb搡bbbb搡| 色婷婷亚洲十月十月色天| 亚洲av福利天堂一区二区三| 精品人妻伦九区久久aaa片69| 亚洲欧洲成人av每日更新| 亚洲爆乳成av人在线视水卜| 国产精品国产三级国产专播| 小13箩利洗澡无码视频免费网站| 免费精品国产自产拍在线观看| 欧洲精品无码一区二区三区在线播放| 人妻免费一区二区三区最新| 超碰国产天天做天天爽| 日韩精品亚洲专在线电影| 无码尹人久久相蕉无码| 国产在线精品一区二区不卡顿| 特黄aaaaaaaaa毛片免费视频| 国产特黄级aaaaa片免| 日本人妻巨大乳挤奶水| 亚洲人成无码网www|