#include "nodes.h"
// 鍊錶棧
/*帶頭指標,頭指標的值表示棧的深度
*/// 鍊錶棧
/*帶頭指標,頭指標的值表示棧的深度
*/snode* createstack()
// 入棧
void stack_push(snode* shead, snode* value)
// 出棧
snode* stack_pop(snode* shead)
shead->value--;
return deletesnode(shead, shead->next);
}// 獲得棧的深度
int stack_getlen(snode* shead)
#include "nodes.h"
// 鏈式佇列,f是頭指標,r是尾指標
typedef struct
queue;
// 獲得佇列長度
int queue_getlen(queue* q)
/*頭指標的值表示佇列的長度
*/queue* createqueue()
// 入佇列
void queue_push(queue* q, snode* newnode)
// 出佇列
snode* queue_pop(queue* q)
snode* f = q->f;
f->value--;
snode* result = deletesnode(f, f->next);
if(queue_getlen(q)==0) // 出佇列後佇列長度為0
return result;
}
用鍊錶實現佇列和棧
1.定義佇列介面 public inte ce myqueue 2.設計介面的實現類 首先佇列是乙個容器,要設定容器的各種方法,我們需要一些原料,這裡我選擇兩個節點和乙個表示容器大小的n,頭節點first用於獲取佇列頭部元素,last指向佇列尾部,同時也作為乙個游標,來迴圈訪問佇列各個元素。關於方法...
鍊錶,棧和佇列
1.建立鍊錶 package com.zzw.鍊錶 非常基本的單項鍊表 author john public class node 新增乙個結點 node end new node d node n this while n.next null n.next end 刪除單向鍊錶中的結點 node ...
使用順序表和煉表實現棧和佇列
一 棧 棧的核心操作 入棧 把元素放到棧裡 出棧 把最後進來的元素刪掉 取棧頂元素 獲取到最後乙個進來的元素的結果 使用順序表實現棧 使用尾插操作表示入棧 使用尾刪操作表示出棧 使用根據下表獲取元素的操作表示取棧頂元素 public class mystack data size val size ...