上一篇: 資訊工程 - 演算法與資料結構 - 資料結構 - 鏈結串列(Linked List) 目錄: 資訊工程 - 演算法與資料結構 - Algorithm&Data Struncture(目錄) 堆疊(Stack) 堆疊(stack),逐次輸入輸出的資料暫時保存的資料結構。 後進先出(Last In First Out(LIFO))的資料結構。 堆疊(stack)的定義 typedef struct stack { int *data; int top;//top從0開始,切不大於max_size int max_size; }*stack; 需要説明一下,typedef的用法實際是自製關鍵字。 而花括號之後的*stack表示該sttruct的指針。 舉個例子: typedef struct a { ...... }newname, *newpointerName; 這段代碼等於我給struct a取別名newname,并且把它struct a的指針稱作*newpointerName,因此在使用時,將具有等同效力。 堆疊(stack)的資料追加 void push(stack s, int val) { if(s->top<s->max_size) s->data[s->top++]=val;//top++表示top=top+1,并且落後執行 //我舉個例子,top默認應該是從0開始的,所以data[0]首先被賦值,完成后top變成了1 } 堆疊(stack)的資料取出 int pop(stack s) { if(s->top>0) return s->data[--s->top];//--s->top表示s->top=top-1,并且優先執行 //舉個例子,假設現在有1個資料,默認top為1,但是這個資料實際存儲在Data[0],所以得優先-1 } 注意:top的初始化一般是從0開始的。 佇列(Queue) キュー(待ち行列) 佇列。 佇列和堆疊(stack)相反,是先進先出(First In First Out(FIFO))的資料結構。 從名字上就很直觀,這就和排隊一樣,先排隊的...
留言
張貼留言