当前位置:网站首页>Class implementation of linear stack and linear queue (another binary tree pointer version)
Class implementation of linear stack and linear queue (another binary tree pointer version)
2022-07-07 22:49:00 【Qingshan's green shirt】
Class implementation of stack and queue ( Instead of STL)
List of articles
distinguish
1. expression :count++—— operation : to count+1—— Value of expression :count The value of the original ( Not added 1 Previous value )
2. expression :++count —— operation : to count+1—— Value of expression :count Add 1 Later value
1. Stack
Linear stack
// Linear stack
class stack {
public:
//1. Pressing stack
void Push(int m) {
data[top++] = m;// Assign values first and then ++
}
//2. Pop up top element
int Pop() {
return data[--top];// First -- To assign a value
// If you don't need to return direct top-1 Return type int Change it to void
}
//3. Initialization of stack
void InitStack() {
top = 0;
}
//4. Sentenced to empty
bool Empty() {
if (top == 0) return true;
return false;
}
//5. Take the top element of the stack but don't delete
int Top(){
return data[top-1];//!!! Note that there !!!
}
private:
int top;// Top pointer of stack ( Point to the element to be put , This can be changed by yourself )
int data[1000];// The static array is put on the stack
};
Stack for storing binary tree pointers
// Put the linear stack of binary tree nodes
class stack{
public:
//1. initialization
void InitStack(){
top = 0;
}
//2. Binary tree pointer stack
void Push(TreeNode *p){
stack[top++] = p;
}
//3. Bomb stack
void Pop(){
top--;
}
//4. Sentenced to empty
bool Empty() {
if (top == 0)return true;
return false;
}
//5. Take the top element of the stack
TreeNode* Top( ){
return stack[top-1];
}
private:
int top;
TreeNode *stack[512];
};
2. queue
The pointer settings of the head and tail of the queue in the code below
front— Point to the team header element
rear— Point to the last position of the tail element ( The next place to insert )
Linear queue
// Linear queue
class Queue {
public:
//1. Initialization function
void InitQueue( ) {
rear = front = 0;
}
//2. Determines if the queue is empty ( Not too serious )
bool QueueEmpty() {
if (rear == front) return true; // If it's empty, return to true
else return false;
}
//3. The team
bool EnQueue(int e) {
if (rear == MAXSIZE) return false;// This sentence must have a meaning ! Or the array is out of bounds !( Array range MAXSIZE-1)
data[rear++] = e;
return true;
}
//4. Out of the team Direct output version
int DeQueue() {
// Out of the team is the top of the team
if (rear == front) return false;
int x = data[front++];
return x;
}
//4.5 Out of the team Only out of the team without output
void PopQueue(){
front = front + 1;// Note that there !
}
//5. Take the team leader element ( Return to the first element )
TreeNode* Front(){
return data[front];
}
private:
int front, rear;
int data[MAXSIZE];
};
A queue for storing binary tree pointers
// Put the queue of binary tree nodes
class Queue {
public:
//1. Initialization function
void InitQueue( ) {
rear = front = 0;
}
//2. Determines if the queue is empty
bool Empty() {
if (rear == front) return true; // If it's empty, return to true Not absolutely !
else return false;
}
//3. The team
bool Push(TreeNode* e) {
if (rear == MAXSIZE) return false;// There has to be Otherwise, the array will be out of bounds !
data[rear++] = e;
return true;
}
//4. Delete team leader element
void Pop(){
front = front + 1;// Note that there ! rear front Are increasing backwards
}
//5. Return to the first element
TreeNode* Front(){
// An array ?
return data[front];
}
private:
int front, rear;// Pointer to a party — Point to the last position of the tail element Team head pointer — Point to the team header element
TreeNode* data[MAXSIZE];// It stores pointers instead of nodes ! Don't save the whole node
};
边栏推荐
- Record problems fgui tween animation will be inexplicably killed
- Unity FAQ (I) lack of references
- Amesim2016 and matlab2017b joint simulation environment construction
- Explain in detail the communication mode between arm A7 and risc-v e907 on Quanzhi v853
- Debezium series: MySQL tombstone event
- Debezium系列之:源码阅读之SnapshotReader
- OpeGL personal notes - lights
- C development - interprocess communication - named pipeline
- XMIND mind mapping software sharing
- Debezium系列之:源码阅读之BinlogReader
猜你喜欢
. Net automapper use
Micro service remote debug, nocalhost + rainbow micro service development second bullet
Leetcode1984. Minimum difference in student scores
Vs custom template - take the custom class template as an example
数字化转型:五个步骤推动企业进步
Microservice Remote debug, nocalhost + rainbond microservice Development second Bomb
「开源摘星计划」Loki实现Harbor日志的高效管理
Px4 autonomous flight
Apple further entered the financial sector through the 'virtual card' security function in IOS 16
UWA Q & a collection
随机推荐
This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
OpeGL personal notes - lights
XMIND mind mapping software sharing
Robot autonomous exploration DSVP: code parsing
Amesim2016 and matlab2017b joint simulation environment construction
Get the week start time and week end time of the current date
How to choose the appropriate automated testing tools?
C development - interprocess communication - named pipeline
如何选择合适的自动化测试工具?
Revit secondary development - wall opening
Revit secondary development - project file to family file
戴森官方直营店免费造型服务现已开放预约 先锋科技诠释护发造型理念,助力消费者解锁多元闪耀造型
What is the difference between the three values of null Nan undefined in JS
Firefox browser installation impression notes clipping
ASP.NET Core入门五
行测-图形推理-4-字母类
What does it mean to prefix a string with F?
Revit secondary development - collision detection
行测-图形推理-3-对称图形类
PHP records the pitfalls encountered in the complete docking of Tencent cloud live broadcast and im live group chat