鍊錶棧和佇列的實現

2021-10-25 05:35:42 字數 895 閱讀 2923

#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 ...