三个文件。
链栈操作在头文件里,可以看注释实现功能。
linkstack.h文件内容如下
#ifndef LINKSTACK_H
#define LINKSTACK_H
typedef int DataType;
struct Node
{
DataType info;
struct Node *link;
};
typedef struct Node *PNode;
struct LinkStack
{
PNode top;
};
typedef struct LinkStack *PLinkStack;
PLinkStack createEmptyStack_link(); // 创建空栈
int isEmptyStack_link(PLinkStack plstack); // 判断是否为空
void push_link(PLinkStack plstack, DataType x); // 进栈
void pop_link(PLinkStack plstack); // 出栈
DataType top_link(PLinkStack plstack); // 取栈顶元素
void print(PLinkStack plstack); // 链栈的打印
#endif
linkstack.c文件内容如下,包括链栈的操作:
#include <stdio.h>
#include <stdlib.h>
#include "linkstack.h"
// 创建空栈
PLinkStack createEmptyStack_link()
{
PLinkStack plstack;
plstack = (PLinkStack)malloc(sizeof(struct LinkStack));
if (plstack != NULL)
{
plstack->top =