1. 程式人生 > 實用技巧 >C語言實現堆疊功能

C語言實現堆疊功能

本程式實現堆疊的初始化、入棧、出棧、判斷棧空、檢視棧頂元素、銷燬功能。

stack.h檔案

#ifndef __STACK_H__
#define __STACK_H__

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define SIZE_stack 1024

typedef int datatype;

struct stack
{
    datatype data[SIZE_stack];
    int top;
};

struct stack *InitStack(void
); bool IsEmptyStack(struct stack *s); void PushStack(struct stack *s, datatype data); datatype PopStack(struct stack *s); datatype TopStack(struct stack *s); void DestroyStack(struct stack *s); #endif /* __STACK_H__ */

stack.c檔案

#include "stack.h"

struct stack *InitStack(void)
{
    struct stack *s;

    s 
= (struct stack *)malloc(sizeof(struct stack)); if (s == NULL) exit(-1);//記憶體不足 s->top = 0; return s; } bool IsEmptyStack(struct stack *s) { return s->top == 0; } void PushStack(struct stack *s, datatype data) { if (s->top == SIZE_stack) exit(-2);//上溢 s
->data[s->top++] = data; } datatype PopStack(struct stack *s) { if (s->top == 0) exit(-3);//下溢 return s->data[--s->top]; } datatype TopStack(struct stack *s) { if (s->top == 0) exit(-4);//棧空 return s->data[s->top - 1]; } void DestroyStack(struct stack *s) { free(s); }

原文地址:https://blog.csdn.net/liuzhaoze2000/article/details/102879755