本文僅為資料結構的筆記。
對於較高階的語言來說有許多現成的函式庫,
儘管如此,還是需要瞭解基本規則。
堆疊
堆疊是一種基本結構,核心的思維是「先進後出」。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ...
int stack[SIZE]; int top = 0;
void push(int data) { stack[top++] = data; }
int pop() { return stack[--top]; } ...
|
這是 C/C++ 的作法,
對於更高階的語言(比方說 JavaScript)來說,
這些功能都已經內建了。
實際上 C++ STL 有內建;另外雖然建立很簡單,但 C 語言方面也有函示庫可以使用。
1 2 3 4 5
| ... var stack = new Array(); stack.push(..); stack.pop(..); ...
|
演示
接下來來看看基本堆疊的資料進出方式。
佇列
佇列是一種基本結構,核心的思維是「先進先出」。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ...
int queue[SIZE]; int top = 0;
void push(int data) { queue[top++] = data; }
int shift() { int data = queue[0]; for(int i = 0; i < top; i++) queue[i] = queue[i + 1]; top--; return data; } ...
|
這是C/C++的作法,
對於更高階的語言(比方說 JavaScript)來說,
這些功能都也已經內建了。
1 2 3 4 5
| ... var queue = new Array(); queue.push(..); queue.shift(..); ...
|
演示
接下來來看看基本佇列的資料進出方式。