#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 };
 //想要实现的内容直接调用函数即可
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值