//栈的顺序存储以及一些基本操作 #include<stdio.h> #define MaxSize 20 //定义一个结构体表示一个栈 typedef struct{ int data[MaxSize]; //定义一个数组存储栈中的元素 int top; //栈顶指针 }SqStack; //初始化一个空栈 void InitStack(SqStack *s){ s->top = -1; } //判断栈空 bool StackEmpty(SqStack s){ if(s->top==-1){ return true; }else{ return false; } } int main(){ SqStack s; InitStack(&s); printf("%d",s.top); return 0; }
时间: 2024-04-21 09:23:17 浏览: 9
这是一个使用顺序存储结构实现的栈的基本操作示例代码,包括初始化栈和判断栈空的操作。
```c
#include <stdio.h>
#include <stdbool.h>
#define MaxSize 20
typedef struct {
int data[MaxSize];
int top;
} SqStack;
void InitStack(SqStack *s) {
s->top = -1;
}
bool StackEmpty(SqStack s) {
if (s.top == -1) {
return true;
} else {
return false;
}
}
int main() {
SqStack s;
InitStack(&s);
printf("%d", s.top);
return 0;
}
```
在这个示例中,我们使用结构体`SqStack`表示一个栈,其中`data`数组用于存储栈中的元素,`top`表示栈顶指针。`InitStack`函数用于初始化一个空栈,将栈顶指针置为-1。`StackEmpty`函数用于判断栈是否为空,当栈顶指针为-1时,表示栈为空。
在`main`函数中,我们创建了一个栈`s`,通过调用`InitStack`函数初始化栈,并通过`printf`语句输出栈顶指针的值。
请注意,这只是栈的基本操作示例,您可以根据需要添加其他操作,例如入栈、出栈等。
相关问题
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct
这段代码是C语言中的头文件引用和一些定义的示例。其中,`#include <stdio.h>`和`#include <stdlib.h>`是用来引入标准库函数的头文件。`stdio.h`包含了输入输出相关的函数,如`printf`和`scanf`;`stdlib.h`包含了一些常用的函数,如内存分配函数`malloc`和随机数生成函数`rand`。
`#define MAXSIZE 100`是一个宏定义,用来定义一个常量`MAXSIZE`,它的值为100。
`typedef int ElemType;`是用来给`int`类型起一个别名`ElemType`,方便在代码中使用。
至于代码中的结构体部分,由于你没有提供完整的代码,所以无法给出具体的解释。但一般来说,结构体用于定义一种自定义的数据类型,可以包含多个不同类型的成员变量。
优化这段代码#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<conio.h> #define OK 1 #define error 0 #define MVNum 100 #define MAXSIZE 10 typedef int OtherInfo,QElemtype; typedef char VerTexType; //结构体定义 typedef struct ArcNode{ int adjvex;
首先,该段代码中包含了一些不必要的头文件,例如:conio.h,malloc.h等。建议只保留stdio.h和stdlib.h。
其次,可以将#define OK 1和#define error 0替换为枚举类型,使代码更加清晰易读。
最后,在结构体定义中,可以将OtherInfo和QElemtype合并为一个类型,避免定义过多类型。同时,也可以将结构体中的变量类型进行优化,例如将int类型的adjvex改为short或者char类型。
重构后的代码如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTEX_NUM 100
#define MAX_ARC_NUM 10
typedef enum {
ERROR = 0,
OK = 1
} Status;
typedef char VertexType;
typedef int ArcType;
typedef struct ArcNode {
int adjvex;
struct ArcNode* nextarc;
ArcType* info;
} ArcNode;
typedef struct VNode {
VertexType data;
ArcNode* firstarc;
} VNode, AdjList[MAX_VERTEX_NUM];
typedef struct {
AdjList vertices;
int vexnum, arcnum;
} ALGraph;
```
希望可以帮到你。