c语言1.栈的初始化及基本操作2. 队列的初始化及基本操作并写出实验总结与思考
时间: 2024-02-26 17:57:52 浏览: 86
C语言栈的初始化及基本操作:
1. 栈的初始化:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int top;
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
```
2. 进栈操作:
```c
int push(Stack *s, int x) {
if (s->top == MAXSIZE - 1) {
return 0; // 栈满
}
s->data[++(s->top)] = x;
return 1;
}
```
3. 出栈操作:
```c
int pop(Stack *s, int *x) {
if (s->top == -1) {
return 0; // 栈空
}
*x = s->data[s->top--];
return 1;
}
```
队列的初始化及基本操作:
1. 队列的初始化:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int front, rear;
} Queue;
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
```
2. 进队列操作:
```c
int enQueue(Queue *q, int x) {
if ((q->rear + 1) % MAXSIZE == q->front) {
return 0; // 队列满
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAXSIZE;
return 1;
}
```
3. 出队列操作:
```c
int deQueue(Queue *q, int *x) {
if (q->front == q->rear) {
return 0; // 队列空
}
*x = q->data[q->front];
q->front = (q->front + 1) % MAXSIZE;
return 1;
}
```
实验总结与思考:
这次实验学习了栈和队列的初始化和基本操作,并通过实验练习了相关代码的编写。在实现栈和队列基本操作时,我们需要注意数据结构的定义和边界条件的判断。使用结构体来定义栈和队列可以使代码结构更加清晰。栈和队列是非常常用的数据结构,它们在计算机编程中有着广泛的应用,如括号匹配、表达式求值、迷宫搜索等等。通过这次实验,我对栈和队列的概念和实现有了更深入的理解,也通过实际编写代码,加深了对数据结构的认识。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)