#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int val;
struct node* next;
}node;
typedef struct stack
{
node* head;
int size;
}stack;
void StackInit(stack* stk);
void StackDestroy(stack* stk);
void StackPush(stack* stk, int elem);
int StackPop(stack* stk);
int StackTop(stack* stk);
void StackInit(stack* stk)
{
stk->head = NULL;
stk->size = 0;
}
void StackDestroy(stack* stk)
{
node* position;
while (stk->head)
{
position = stk->head->next;
free(stk->head);
stk->head = position;
}
stk->size = 0;
stk->head = NULL;
}
void StackPush(stack* stk, int elem)
{
node* tmp,* position;
tmp = (node*)malloc(sizeof(node));
if (tmp == NULL)
exit(EXIT_FAILURE);
tmp->next = stk->head;
stk->size++;
stk->head = tmp;
tmp->val = elem;
}
int StackPop(stack* stk)
{
int val;
node* position;
if (stk->size == 0)
{
printf("no elements.\n");
exit(EXIT_FAILURE);
}
val = stk->head->val;
position = stk->head;
stk->head = stk->head->next;
stk->size--;
free(position);
return val;
}
int StackTop(stack* stk)
{
if (stk->size == 0)
{
printf("no elements\n");
exit(EXIT_FAILURE);
}
return stk->head->val;
}
基础数据结构——链栈代码实现C
最新推荐文章于 2024-08-16 21:54:14 发布