需要先開闢一定的理論空間capacity的陣列
當實際空間size大於理論空間capacity時,需要重新分配空間大小
通過size來指向棧頂
壓棧就是將新的數值放在size處,然後size++
出棧就是將size處的數值返還,size--
#pragma once
//棧的兩種實現方法之陣列實現
template class arraystack
;template arraystack::arraystack(int cap)
:size(0), capacity(cap), arr(nullptr)
template arraystack::~arraystack()
}templatet arraystack::top()
templatet arraystack::pop()
templatevoid arraystack::push(t data)
arr[size++] = data;
}templatebool arraystack::isempty()
templateint arraystack::getsize()
鍊錶的實現需要首先建立乙個哨兵節點,即phead=null,該處設為ptop,ptop一直指向頭
壓棧相當於鍊錶的頭插法,每次都分配空間,然後將新的數值插在ptop的後面,size++
出棧就是將ptop指向的下乙個有數值的點彈出,size--
#pragma once
//棧的兩種實現方法之鍊錶實現
template struct node
node(t data):value(data) };
template class liststack
;template liststack::liststack()
template liststack::~liststack()
ptop = nullptr;
}templatet liststack::top()
//從鍊錶頭部刪除
templatet liststack::pop()
}//類似於鍊錶的頭插法
templatevoid liststack::push(t data)
templatebool liststack::isempty()
templateint liststack::getsize()
#include //#include "arraystack.h"
#include "liststack.h"
using namespace std;
int main()
system("pause");
}
佇列(陣列實現和鍊錶實現)
1.概念 具有一定操作約束的線性表 2.特點 1 只能在一端插入 入隊 另一端刪除 出隊 2 先進先出。3.儲存實現方式 陣列 鍊錶。4.基本操作 1.陣列實現 迴圈陣列 注意 1 普通的順序儲存的陣列用來實現佇列時,存在乙個問題 當rear 記錄隊尾的變數 到達maxsize 1時,不能確定佇列是...
陣列實現鍊錶
測試類 public class listtest 再新增元素 list.add 100 list.modify 10,100 取出元素 for int i 0 i list.size i 建立乙個陣列佇列 author 閉耀堯 public class mylist 將心陣列的值賦給初始陣列的最後...
用陣列和鍊錶實現棧
完成乙個棧總共需要完成以下操作 初始化入棧 出棧檢視棧頂元素 檢視棧的容量 清空棧。首先是簡單的,用陣列做的,會有越界的可能。include include typedef struct stack stack stack s 生成棧 void initstack 入棧,push void push...