freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實習(xí)報告(編輯修改稿)

2025-02-14 22:34 本頁面
 

【文章內(nèi)容簡介】 的選擇是返回主菜單\n)。 main()。 default: printf(\t\t輸入錯誤!請重新輸入!\n\t\t)。 } } return 0。}各個子函數(shù)源文件include includeincludeinclude includevoid InitLList(LinkedList *L) // 對單鏈表進行初始化 { Lnext=NULL。 // 置為空表 }int GetLListLength(LinkedList *L)// 求表的長度 { LinkedList *p。 int j。 p=Lnext。 j=0。 while(p!=NULL) { p=pnext。 j++。 } return j。} LinkedList *GetLListElem(LinkedList *L, int i) //在帶頭結(jié)點的單鏈表L中查找第i個結(jié)點{ int j。 LinkedList *p。 p=L。 j=0。 while ((pnext!=NULL)amp。amp。(ji)) { p=pnext。 j++。 } if(i == j) return p。 else return NULL。 } LinkedList *LocateLListElem( LinkedList *L,DataType key) //在帶頭結(jié)點的單鏈表L中查找其{ LinkedList *p。 p=Lnext。 while (p!=NULL) { if (pdata!=key) p=pnext。 else break。 } return p。} int InsertLList(LinkedList *L,int i,DataType x)//在帶頭結(jié)點的單鏈表L中第i個位置插入值為e的新結(jié)點s{ LinkedList *pre,*s。 int k。 pre=L。 k=0。 while(pre!=NULLamp。amp。ki1) { pre=prenext。 k=k+1。 } if(!pre) { printf(插入位置不合理!)。 return ERROR。 } s=(LinkedList*)malloc(sizeof(LinkedList))。 sdata=x。 snext=prenext。 prenext=s。 return OK。} int DeleteLList(LinkedList *L,int i,DataType *e)//在帶頭結(jié)點的單鏈表L中刪除第i個元素,并將刪除的元素保存到變量*e中{ LinkedList *pre,*r。 int k。 pre=L。 k=0。 while(prenext!=NULL amp。amp。 ki1) { pre=prenext。 k=k+1。 } if(!(prenext)) { printf(刪除結(jié)點的位置i不合理!)。 return ERROR。 } r=prenext。 prenext=prenextnext。 *e = rdata。 free(r)。 printf(成功刪除結(jié)點!)。 return OK。}LinkedList *CreateLList()// 建立不帶頭結(jié)點的單鏈表(頭插法建表){ char ch。 LinkedList *l,*s。 l=(LinkedList *)malloc(sizeof(LinkedList))。 lnext=NULL。 ch=getchar()。 while(ch!=39。@39。) { s=(LinkedList *)malloc(sizeof(LinkedList))。 sdata=ch。 snext=lnext。 lnext=s。 ch=getchar()。 } return l。}LinkedList *CreateLListR()//建立帶頭結(jié)點的單鏈表(尾插法建表){ char ch。 LinkedList *head,*s,*r。 head=(LinkedList *)malloc(sizeof(LinkedList))。 r=head。 ch=getchar()。 while(ch!=39。@39。) { s=(LinkedList *)malloc(sizeof(LinkedList))。 sdata=ch。 rnext=s。 r=s。 ch=getchar()。 } rnext=NULL。 return head。}PrintLList(LinkedList *q)//輸出帶頭結(jié)點的單鏈表{ LinkedList *p。 p=qnext。 printf(字符單鏈表結(jié)果是: \n()。 while(p!=NULL) { printf(%5c,pdata)。 p=pnext。 } printf(\b))。} 哈夫曼編碼器頭文件include typedef char DataType。define MAXNUM 50typedef struct// 哈夫曼樹結(jié)點的結(jié)構(gòu) { DataType data。 // 數(shù)據(jù)用字符表示 int weight。 // 權(quán)值 int parent。 // 雙親 int left。 // 左孩子 int right。 // 右孩子 }HuffNode。typedef struct// 哈夫曼編碼的存儲結(jié)構(gòu) { DataType cd[MAXNUM]。// 存放編碼位串 int start。 // 編碼的起始位置 }HuffCode。菜單函數(shù)includeint Huffmanmenu(){ int n,select,flag=0。 // flag為0時標(biāo)記第一次選擇功能 HuffNode ht[2*MAXNUM]。 // 定義存放哈夫曼樹的數(shù)組 HuffCode hcd[MAXNUM]。 // 定義存放編碼的數(shù)組 while(1) { printf(\t 請選擇您所要實現(xiàn)的功能:\n)。 printf(\t1建立哈夫曼樹\n)。 printf(\t2編碼\n)。 printf(\t3譯碼\n)。 printf(\t4退出系統(tǒng)\n)。 printf((請輸入14數(shù)字)\n)。 scanf(%d,amp。select)。 if(select!=1amp。amp。select!=4amp。amp。flag==0) { // 提示先建立哈夫曼樹或退出 printf(請先建立哈夫曼樹再選擇其他功能!\n)。 continue。 } flag=1。 switch(select) // 選擇功能 { case 1: n=HuffmanCreate(ht)。 break。 case 2: Encoding(ht,hcd,n)。 break。 case 3: Decoding(ht,hcd,n)。 break。 case 4: return 1。 } } return 0。} 各個子函數(shù)模塊includeint HuffmanCreate(HuffNode *ht)//建立哈夫曼樹 { int i,k,n,m1,m2,p1,p2。 printf(請輸入元素個數(shù):)。 scanf(%d,amp。n)。 for(i=1。i=n。i++) // 輸入結(jié)點值和信息 { getchar()。 // 接收回車 printf(第%d個元素的=\n\t結(jié)點值:,i)。 scanf(%c,amp。ht[i].data)。 printf(\t權(quán) 重:)。 scanf(%d,amp。ht[i].weight)。 } for(i=1。i=2*n1。i++) // 對數(shù)組初始化 ht[i].parent=ht[i].left=ht[i].right=0。 for(i=n+1。i=2*n1。i++) { m1=m2=32767。 // 初始化,令mm2為整數(shù)最大值 p1=p2=1。 for(k=1。k=i1。k++) // 從數(shù)組ht[1]到ht[i1]中找出 if(ht[k].parent==0) // parent為0并且權(quán)值最小的兩個結(jié)點 if(ht[k].weightm1) { m2=m1。 // m1為最小權(quán)值 p2=p1。 // p1為最小權(quán)值的位置 m1=ht[k].weight。 // m1存放最小權(quán)值 p1=k。 } else if(ht[k].weightm2) { m2=ht[k].weight。 // m2為次小權(quán)值 p2=k。 // p2為次小權(quán)值的位置 } ht[p1].parent
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1