因為目前沒有中文編輯的需求,所以暫時沒有安裝Texmaker,
現在使用Miktex + Texworks(內建) 就很夠用了
安裝
基本上就是下一步,安裝完之後系統會先要求檢查更新,更新完之後就可以在開始功能表搜尋Texworks開始使用
在VScode建立latex環境
0. 先裝好Miktex,(有的人會建議安裝texlive,但因為我一開始是先用miktex+Texwork然後就直接轉到vscode上面,所以沒有嘗試過texlive)
1. 在VScode裡安裝TeX Workshop這個套件

2. 直接Ctrl+alt+B執行,然後就會看到出現以下的錯誤訊息
miktex could not find the script engine ‘perl’ which is required to execute ‘latexmk’
這時候需要到perl的官方網站安裝,如果是windows作業系統的話選擇strawberry perl
3. 安裝完成之後重新開啟VScode就可以了
(4) 可能是我目前的需求還沒有使用到,先把資料放在下面的環境設定
以下是從安裝到指令的參考資料,也是我主要會用到的參考
VScode環境設定參考資料
安裝參考資料
指令參考資料
main裡面,可以include.c嗎?
#include 等同於複製貼上
也就是說會刪掉目前#include所在的這一行,並將引用的內容全部原地複製貼上
所以確實是可以include .c 但通常不會這麼做
如果.c為函式用法,只需include .h 編譯器會找到.c
若.c為其他程式,可以利用makefile分別編譯完,最後link在一起
void main
首先,標準的C/C++當中並沒有定義void main(), 而main的回傳值必須要是int,這樣返回值才能傳遞給程式的呼叫者(如OS),等同於 exit(0),來判斷函式的執行結果。
雖然現在多數編譯器可以支援void main(),有些編譯器如c99會在沒有return的main當中自動加入return 0,但為了移植的通用性最好不要這樣做。

Run-length
Burrows-Wheeler Transform + Run-length Compression
檔案處理
讀取txt
切割單字
建立單字陣列
統計字母出現次數(For Huffman and Algorithmic)
Run-length
Burrows-Wheeler Transform
Huffman Coding
Tree
Algorithmic Compression
Cumulative frequency
rescaling
參考資料
http://web.ntnu.edu.tw/~algo/Compression.html
http://web.ntnu.edu.tw/~algo/Substring3.html
http://my.stust.edu.tw/sys/read_attach.php?id=58495
http://par.cse.nsysu.edu.tw/~homework/algo01/8934609/index.html
https://www.youtube.com/watch?v=-R2a2a1-2MM
Linked List

結構
Linked list在操作上的彈性讓他可以被用來實現多種資料結構,像是先前提過的stack, queue或是tree都可以。
Note: 前面stack與queue在範例當中都是使用array來實作,這邊則是直接用pointer來指向下個節點(node)。
因為鏈結串列是由許多結構相同的節點(node)串在一起形成的,因此我們在宣告時只要定義好一個節點就可以了,其結構包含:
- data: 可以根據需求是任意的資料型態。
- *next: 資料型態為node,因為next指向下一個節點,而節點的資料型態為node。在宣告時注意必須要遞迴宣告(也就是*next的型態必須和node相同)
操作
在結構的操作上可以把資料存進串列裡,也可以將資料取出。需要特別注意的是,在操作時每個節點的位址(address)都必須有人指著,以避免記憶體流失(memory leakage),因為單向的串列只能由前一個節點指向後一個節點,因此一旦串列中斷就無法再找回該節點所在的記憶體位址。
Note: 這部份似乎就沒有特定的稱呼 add, new, insert, delete, free, remove都有,這邊用的是insert跟 free。
- insert: 新增一個節點至串列當中,可以根據需求調整函式將新的節點加在串列中的任意位置。