資料結構之簡易詞法分析(未包含錯誤分析)

2021-07-05 23:44:01 字數 1440 閱讀 5251

#include

#include

#include

#include

const int word_size=100;

//用來儲存臨時變數的大小

int line=1;

//全域性變數用以輸出單詞所在行數

using namespace std;

string key1[20]=;

string key2[20]=;

//其中main不為關鍵字,只為新增便於迴圈

char alphaprocess(file* &fp,char ch)

fseek(fp,-1,1);

//多處理了乙個字元,故將檔案指標後移乙個單位

tempbuffer[i]=null;

//將陣列中最後乙個字元設為空,否則輸出該字元陣列時會有一系列亂碼。比如:燙燙燙燙(編譯環境為vc++6.0)

for(i=0;i<20;i++)

}cout<<"line:"<"<<"(1,"return ch;

}char digitprocess(file* &fp,char ch)

fseek(fp,-1,1);                           //對多處理的乙個字元進行還原

tempbuffer[i]=null;

cout<<"line:"<"<<"(2,"return ch;

}char otherprocess(file* &fp,char ch)' || ch=='[' || ch==']'

|| ch==',' || ch==';')

if(ch=='-')

}if(ch=='+')

}if(ch=='>')

}if(ch=='<')

}if(ch=='!')

}if(ch=='=')

}tempbuffer[2]=null;

cout<<"line:"<"<<"("}void main()

dowhile(ch!=eof);

fseek(fp,0,0);

//將檔案指標移動至檔案開始處

coutdo//

ch=getc(fp);

else if(isalpha(ch) || ch=='_')

ch=alphaprocess(fp,ch);

//以各個對應的函式解決

else if(isdigit(ch))

ch=digitprocess(fp,ch);

else if(ispunct(ch))

ch=otherprocess(fp,ch);

}while(ch!=eof);

fclose(fp);

//關閉檔案*/

//課程較緊,老師也未深入講解,故只做了簡單地分析,也有很多未考慮的地方,不足之處也顯而易見,對於注釋的解決,浮點數的判斷正誤,函式名的判別等等

資料結構之簡易版hashmap

在程式設計中hashmap是一種強大的資料結構,可以說是程式設計利器,下面是我自己寫的簡易版hashmap。public class myhashmap transient entry table entry empty table 鍵值對數量 transient int size 載入因子 int...

資料結構之雜湊表(Hash Table)(未搞定)

今天我們來聊聊雜湊表。雜湊表 hash table,也叫雜湊表 雜湊表 hash table,也叫雜湊表 是依據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。來自維...

資料結構複習之 演算法分析

這部分主要目的是對於時間空間複雜度 演算法評價標準有乙個了解,以便於在後面的學習中可以對各種資料結構的效率有乙個客觀的評價標準 對比起來也更容易 代價可以分為兩種 時間代價和空間代價 時間代價主要是指演算法執行過程中所需的時間 空間代價指演算法所需要的儲存器資源 對於乙個演算法的評價應該可以客觀地展...