今天來說課設依舊處於沒有進展的狀態,自己也處於游離狀態。早上和班長在一起的時間還算是比較有趣的。
早上對昨天的**進行改進,然並卵。自己沒有掌握就是沒有掌握,沒有得到這個那個能力就是沒有得到。早上後半程也就放棄了。
下午就在網上找**,然後自己修改了下。//原**見 **這個
//呼叫有檔案以及定義常數值
#include "stdio.h"
#include "string.h"
#include "ctype.h"
#define maxlen 100
#define maxlen_1 1000
//自定義型別宣告
typedef struct
hfmtnode;
typedef hfmtnode hfmt[maxlen];
typedef struct
hfmcnode;
typedef hfmcnode hfmc[maxlen];
typedef struct
seqstack;
typedef struct
count;
count c[maxlen]=;
//檔案全域性變數外部宣告
extern int n; //多少個字元
extern int t=0; //多少個權值
//所有子函式宣告
void initializetree(hfmt t);
void countchar();
void inputtree(hfmt t);
void selectleast(hfmt t,int *p1,int *p2);
void createhfmt(hfmt t);
void push(char x);
void hfmc(hfmt t,int i);
void createhfmc(hfmt t,hfmc c);
void initialization(hfmt t,hfmc c);
void codeing(hfmc c);
void decodeing(hfmc c);
void showcodefile();
void showdecodefile();
seqstack s;
int main()
//初始化樹
void initializetree(hfmt t)
fseek(fp,0,seek_end);
n=ftell(fp);
for(i=0;i<2*n-1;i++) }
void countchar()
for (int j=0;j<=i;j++)
}//權值放在乙個陣列中,然而現在權值放在了charrr.x中
while (c[k]->ch!=0) }
void inputtree(hfmt t)
}//從樹陣列中選取權值最小的兩個元素
void selectleast(hfmt t,int *p1,int *p2)
} for(i=0;i<2*n-1;i++) }
}//構建哈夫曼樹
void createhfmt(hfmt t)
}//入棧
void push(char x)
//構建哈夫曼樹編碼庫遞迴呼叫函式
void hfmc(hfmt t,int i)
}//構建哈夫曼樹編碼庫
void createhfmc(hfmt t,hfmc c)
c->code[j]='\0'; }}
//初始化函式
void initialization(hfmt t,hfmc c)
else
fclose(out);
printf("\n初始化完畢!");
}//編碼函式
void codeing(hfmc c)
zw='\0';
} else
fclose(in);
//進行編碼
for(i=0;zw!='\0';i++)
error=0;//若編碼庫存在匹配字元,則錯誤為假
break;
}} if(error==1)
break;
} code[c_len]='\0';
if(error)
else
fclose(out); }}
//解碼函式
void decodeing(hfmc c)
else
fclose(in);
//求編碼正文長度c_len
for(i=0;code!='\0';i++);
c_len=i;
if(c_len==0)
error=1;//錯誤情況1
//求編碼庫最長編碼長度c_max
c_max=0;
for(i=0;icode)==0)
}//若找到編碼庫里匹配的編碼,則結束迴圈
if(flag)
//未找到則將當前長度減一,繼續尋找
if(dq_len<1)
error=1;//解碼錯誤情況2
} dq=dq+dq_len;//編碼正文當前讀取位置改變
} zw[k]='\0';//在zw陣列的最後乙個位置新增字串結束符
if(error)
else
fclose(out); }}
//顯示編碼檔案內容函式
void showcodefile()
else
fclose(in);
//列印內容
printf("\n**檔案內容為:");
for(i=0;code!='\0';i++) }
void showdecodefile()
else
fclose(in);
//列印內容
printf("\n**檔案內容為:");
for(i=0;code!='\0';i++)
}
然後上面這個現在唯一的問題就是:
文字檔案裡面字元的統計,權值問題。
其它我感覺已經沒有問題了。
感覺自己真的路選的......
就這樣吧
資料結構課程設計
資料結構課程設計 include define n 30 include include includeusing namespace std struct node typedef node phone,mingzi node hashnumble node hashname int hash1 ...
資料結構課程設計
小明是乙個計算機專業top student 祝賀他畢業了。並準備到銀行參加工作。上班第一天,經理叫他編制乙個實現乙個活期儲蓄處理程式,算作考查。上班第一天,一定要給領導乙個好印象,小明二話沒說,就答應了。現要你是小明了,請完成如下題目功能。儲戶開戶 銷戶 存入 支出活動頻繁,系統設計要求 1 能比較...
資料結構課程設計
一 實訓目的 通過課程設計,學會運用資料結構知識,針對具體應用,自己設計合理資料結構,確定儲存結構,並能設計具體操作演算法,選擇使用具體語言進行實現。掌握c 較複雜程式的組織和設計過程,除錯技巧。學習解決實際問題的能力。題目1.小明是乙個計算機專業top student,祝賀他畢業了。並準備到銀行參...