当前位置:网站首页>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
};
边栏推荐
- Welcome to CSDN markdown editor
- 行测-图形推理-6-相似图形类
- 微服务架构开源框架详情介绍
- Revit secondary development - wall opening
- Install mxnet GPU version
- Record layoutrebuild Forcerebuildlayoutimmediate does not take effect
- How to realize the movement control of characters in horizontal game
- [problem] pytorch installation
- Common verification rules of form components -2 (continuously updating ~)
- OpenGL homework - Hello, triangle
猜你喜欢

Ni9185 and ni9234 hardware settings in Ni Max

Explain in detail the communication mode between arm A7 and risc-v e907 on Quanzhi v853

UWA Q & a collection

C # realizes the communication between Modbus protocol and PLC

Visual studio 2019 installation

“拧巴”的早教行业:万亿市场,难出巨头
![VTOL in Px4_ att_ Control source code analysis [supplement]](/img/7a/4ce0c939b9259faf59c52da2587693.jpg)
VTOL in Px4_ att_ Control source code analysis [supplement]

OpenGL configuration vs2019

Leetcode1984. Minimum difference in student scores

行测-图形推理-4-字母类
随机推荐
Aspose. Word operation word document (I)
Select sort (illustration +c code)
Unity FAQ (I) lack of references
PHP method of obtaining image information
Get the week start time and week end time of the current date
[azure microservice service fabric] how to transfer seed nodes in the service fabric cluster
Remember aximp once Use of exe tool
Relationship between URL and URI
Debezium series: MySQL tombstone event
“拧巴”的早教行业:万亿市场,难出巨头
变量与常量
Redis官方ORM框架比RedisTemplate更优雅
Debezium series: support the use of variables in the Kill Command
Add get disabled for RC form
微服务架构开源框架详情介绍
Px4 autonomous flight
微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹
Customer case | China law network, through observing the cloud, greatly shortens the time of fault location
Amesim2016 and matlab2017b joint simulation environment construction
What does it mean to prefix a string with F?