当前位置:网站首页>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
};
边栏推荐
- Micro service remote debug, nocalhost + rainbow micro service development second bullet
- 7-51 combination of two ordered linked list sequences
- Unity development --- the mouse controls the camera to move, rotate and zoom
- Debezium系列之:引入对 LATERAL 运算符的支持
- Aspose. Word operation word document (I)
- UWA问答精选
- Aspose. Word operation word document (II)
- Microservice Remote debug, nocalhost + rainbond microservice Development second Bomb
- Relationship between URL and URI
- Early childhood education industry of "screwing bar": trillion market, difficult to be a giant
猜你喜欢

新版代挂网站PHP源码+去除授权/支持燃鹅代抽

行测-图形推理-3-对称图形类

vite Unrestricted file system access to

如何选择合适的自动化测试工具?

Matplotlib快速入门

What does it mean to prefix a string with F?

Digital transformation: five steps to promote enterprise progress

微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈

Application practice | the efficiency of the data warehouse system has been comprehensively improved! Data warehouse construction based on Apache Doris in Tongcheng digital Department

Amesim2016 and matlab2017b joint simulation environment construction
随机推荐
The whole network "chases" Zhong Xuegao
Revit secondary development - Hide occlusion elements
OpenGL job coordinate system
How to choose the appropriate automated testing tools?
C # Development -- pit encountered in JS intermodulation
Revit secondary development - intercept project error / warning pop-up
Record a garbled code during servlet learning
C development -- WPF simple animation
行测-图形推理-7-相异图形类
How to quickly check whether the opening area ratio of steel mesh conforms to ipc7525
C development - interprocess communication - named pipeline
Force deduction - question 561 - array splitting I - step by step parsing
Debezium系列之:mysql墓碑事件
Revit secondary development - link file collision detection
Welcome to CSDN markdown editor
The free styling service of Dyson's official direct store is now open for appointment. Pioneer Technology interprets the styling concept of hair care and helps consumers unlock diversified and shiny s
Form组件常用校验规则-2(持续更新中~)
[azure microservice service fabric] the service fabric cluster hangs up because the certificate expires (the upgrade cannot be completed, and the node is unavailable)
XMIND mind mapping software sharing
微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈