C——自定义栈
#include <stdlib.h>
#include <stdio.h>
//定义栈中只能放5个元素。
#define N 5
struct MyStack
{
int index;
int arr[ N ];
};
struct MyStack myStack = { -1, {0} };
//栈中插入数据。返回0,插入失败。返回1,插入成功。
int push(int num){
if (myStack.index + 1 >= N){
return 0;
}
myStack.arr[++myStack.index] = num;
return 1;
}
//取出栈中的数据。用这个方法之前要先判断栈中是否为空。
int pop(){
if (myStack.index < 0){
return 0;
}
return myStack.arr[myStack.index--];
}
//栈中是否为空。返回1,为空。返回0,为非空。
int isEmpty(){
if (myStack.index == -1){
return 1;
}
return 0;
}
//设置栈为空
void setEmpty(){
myStack.index = -1;
}
int main(){
int arr[] = {1,2,3,4,5,6,7,8,9};
int length = sizeof(arr) / sizeof(int);
for (size_t i = 0; i < length; i++)
{
if (push(arr[i])){
printf("第%d个元素是%d插入成功。\n", i, arr[i]);
}
else{
printf("第%d个元素是%d插入失败。\n", i, arr[i]);
}
}
if (isEmpty()){
printf("栈为空\n");
}
else{
printf("栈不为空\n");
}
while (!isEmpty())
{
printf("数据为:%d\n",pop());
}
if (isEmpty()){
printf("栈为空\n");
}
else{
printf("栈不为空\n");
}
system("pause");
return 0;
}

浙公网安备 33010602011771号