#pragma once
#include <windows.h>
typedef struct KEEP //
{
int index;
char name[8];
KEEP* next;
}KEEP;
typedef struct STACK //
{
int size;
KEEP* top;
}STACK;
bool insert(STACK* stack, int index);//插入
bool push(STACK* stack, KEEP keep);//入栈
bool pop(STACK* stack);//出栈
int size(STACK stack);//栈的元素个数
bool empty(STACK* stack);//是否空栈
KEEP* top(STACK stack);//栈的头部分
void clear(STACK* stack);//清楚栈
void show(STACK stack);//展示栈的内容
//以上头文件///
#define _CRT_SECURE_NO_WARNINGS
#include "list.h"
#include <stdio.h>
#include <windows.h>
#include <limits.h>
#include <time.h>
#include <math.h>
#include <iostream>
bool insert(STACK* stack, int index)
{
KEEP* one = (KEEP*)malloc(sizeof(KEEP));
one->index = index;
/*strcpy(one->name, name);*/
one->next = NULL;
push(stack,*one);
return true;
}
bool push(STACK* stack, KEEP keep)
{
KEEP* one = (KEEP*)malloc(sizeof(KEEP));
one->index = keep.index;
/*strcpy(one->name, keep.name);*/
one->next = NULL;
KEEP*p = stack->top;
if (stack->top == NULL)
{
stack->top = one;
one->next = NULL;
stack->size++;
return true;
}
else
{
one->next = p;
stack->top = one;
stack->size++;
return true;
}
}
bool pop(STACK* stack)
{
KEEP*p = stack->top;
stack->top = p->next;
free(p);
stack->size--;
return true;
}
int size(STACK stack)
{
return stack.size;
}
bool empty(STACK* stack)
{
KEEP*p = stack->top;
if (p == NULL)
{
return 0;
}
else
{
return 1;
}
}
KEEP* top(STACK stack)
{
return stack.top;
}
void clear(STACK* stack)
{
KEEP*p = stack->top;
for (p; p != NULL; )
{
KEEP*q = p;
p = p->next;
stack->top = p;
free(q);
stack->size--;
}
}
void show(STACK stack)
{
KEEP*p = stack.top;
for (p; p != NULL; p = p->next)
{
printf(" %d\n", p->index);
}
}
void main()
{
STACK stack = { 0 };
//想要实现的内容直接调用函数即可
}
栈
最新推荐文章于 2021-10-11 20:39:01 发布