//LinkStack.h
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int Datatype;
typedef struct LinkstackNode
{
Datatype data;
struct LinkstackNode* next;
}LN;
void LinkstackInit(LN** pphead);
void LinkstackDestory(LN* phead);
Datatype LinkstackTop(LN*phead);
void LinkstackPush(LN** pphead,Datatype x);
void LinkstackPop(LN** pphead);
int LinkstackLen(LN* phead);
int LinkstackEmpty(LN* phead);
//LinkStack.c
#include "LinkStack.h"
void LinkstackInit(LN** pphead)
{
*pphead = NULL;
}
void LinkstackPush(LN** pphead, Datatype x)
{
LN* new = (LN*)malloc(sizeof(LN));
if (new == NULL)
{
printf("失败");
exit(-1);
}
new->data = x;
new->next = *pphead;
*pphead = new;
}
void LinkstackPop(LN** pphead)
{
if (*pphead == NULL)
{
printf("空栈");
exit(-1);
}
LN*p = *pphead;
*pphead = (*pphead)->next;
free(p);
}
Datatype LinkstackTop(LN* phead)
{
if (phead != NULL)
return phead->data;
}
void LinkstackDestory(LN* phead)
{
LN* cur = phead;
while (cur)
{
LN* next = cur->next;
free(cur);
cur = next;
}
}
int LinkstackLen(LN* phead)
{
int len = 0;
LN* cur = phead;
while (cur)
{
len++;
cur = cur->next;
}
}
int LinkstackEmpty(LN* phead)
{
if (phead == NULL)
return 1;
else
return 0;
}
数据结构链栈
最新推荐文章于 2024-08-21 22:14:23 发布