栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据结构(1-4)栈

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构(1-4)栈

#数据结构定义

#define DataType int
#define maxn 100005

struct stack{
Datatype data[maxn];
int top;//data[top-1]表示栈顶元素,top==0表示空栈
}

#入栈操作

void stackpushstack(struck stack *stk,DataType dt){
stk->data[stk->top]=dt;
stk->top=stk->top+1;
}
或者是
void stackpushstack(strck stack *stk,DataType dt)
{
stk->data[stk->top++]=dt;
}

#出栈

void StackPopStack(struck Stack *std){
--std->top;
}

#清空栈

void StackClear(struck Stack *std){
std->top=0;
}

#只读接口包含:获取栈顶元素、获取栈大小、栈的判空,实现如下:

DataType StuckGetTop(struck Stack *stk){
return stk->data[stk->top-1];
}
int StackGetSize(Struck Stack *stk){
return stk->top;
}

bool StackIsEmpty(struck Stack stk)
{
return !StackGetSize(stk);
}

#栈的链式表实现

typedef int DataType;
struct StackNode;
struct StackNode{
DataType data;
struck StackNode *next;
};
struct Stack{
struck stackNode* top;
int size;
} 

#栈的插入(头插法)

void StackPushStack(struck Stack *stk,DataType dt){
struck StackNode *insertNode=(struck StackNode*)malloc(sizeof(struct StackNode));
insertNode->next=stk->top;
insertNode->data=dt;
stk->top=insertNode;
++stk->size;
}

#栈的删除

void StackPopStack(struck stack *stk){
struck stack *tmp=stk->top;
stk->top=temp->next;
free(temp);
stk->top--;
}

#栈的清空

void StackClear(struct stack *stk){
while(!StackIsEmpty(stk)){
StackPopStack(stk);
}
stk->top=null;
}

#只读接口包含:获取栈顶元素、获取栈大小、栈的判空,

DataType StackGetTop(struct stack *stk){
retrun stk->top->data;
}
int StackGetSize(struct stack *stk){
return stk->size;
}
int StackIsEmpty(struct stack *stk){
return !StackGetSize;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号