#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 };
 //想要實現的內容直接調用函數即可
}
發佈了42 篇原創文章 · 獲贊 18 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章