请选择 进入手机版 | 继续访问电脑版
点击联系客服
客服QQ:509006671 客服微信:mengfeiseo

东莞老站长

 找回密码
立即注册
热搜: 活动 交友 discuz
查看: 139|回复: 50

浅谈Stack的实施

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-3-5 14:20:46 | 显示全部楼层 |阅读模式
文章目录

Stack概念Stack的实现

Stack概念

堆叠是一种特殊的线性表格,其中只能在固定一端插入和删除元素的一端称为堆叠顶端,另一端称为堆叠底端。遵循“第一次出口”(last  in  first  out,LIFO)原则。

Stack实现

Stack.h文件

#pragma  once

#include  stdio.h

#include  assert.h

#include  stdlib.h

Typedef  int  SLDataType

Typedef  struct  SeqList

{

SLDataType  * a;

Int  top

Int能力;

} Stack

//初始化堆栈

void  Stack  init(Stack  * PST);

//移除堆叠

void  Stack  destory(Stack  * PST);

//添加堆栈顶部元素

Void  stack  push  (stack  * PST、sl  datatype  x);

//移除堆叠顶端元素

void  Stack  pop(Stack  * PST);

//返回堆栈中的元素数

Int  Stacksize(Stack  * PST);

//返回堆栈顶部元素

SLDataType  StackTop(Stack  * PST);

//堆栈中的空白

int  Stack  empty(Stack  * PST);

Stack.c文件

#include  'Stack.h  '

//初始化堆栈

Void  StackInit(Stack* PST)

{

资产(PST);

PST-A=(SLDatatype  *)Malloc(Sizeof(SLDatatype)* 4);

PST-TOP=0;

PST-Capacity=4;

}

//移除堆叠

Void  StackDestory(Stack* PST)

{

资产(PST);

FREE(PST-A);

PST-A=NULL;

PST-TOP=PST-Capacity=0;

}

//添加堆栈顶部元素

Void  stack  push  (stack  * PST、sl  datatype  x)

{

资产(PST);

If  (pst-top==pst-capacity)

{

Sl  datatype  * tmp=realloc  (PST-a,PST-Capacity  * 2 * Sizeof(SL  Datatype));

If  (tmp==NULL)

{

printf(' relloc  fail  \ n  ');

结束(-1);

}

PST-A=TMP;

Pst-容量*=2;

}

PST-A[PST-top]=x;

PST-TOP;

}

//移除堆叠顶端元素

Void  StackPop(Stack* PST)

{

资产(PST);

Assert(!Stack  Empty(PST);

PST-TOP-;

}

//返回堆栈中的元素数

Int  StackSize(Stack* PST)

{

资产(PST);

return  PST-top;

}

//返回堆栈顶部元素

SLDataType  StackTop(Stack* PST)

{

资产(PST);

Assert(!Stack  Empty(PST);

return  PST-a[PST-top-1];

}

//堆栈中的空白

Int  StackEmpty(Stack* PST)

{

资产(PST);

Return  pst-top==0?1 : 0;

}

Test.c

#include  'Stack.h  '

Int  main()

{

Stack  ST

Stack  init(ST);

StackPush(st,1);

StackPush(st,2);

StackPush(st,3);

StackPush(st,4);

While(!stack  empty(ST)

{

printf(“% d”,stack  top(ST));

Stack  pop(ST);

}

printf(' \ n  ');

}
回复

使用道具 举报

0

主题

228

帖子

-21

积分

限制会员

积分
-21
发表于 2021-3-5 14:22:32 | 显示全部楼层
看帖回帖是美德!
回复

使用道具 举报

1

主题

260

帖子

-11

积分

限制会员

积分
-11
发表于 2021-3-5 14:43:47 | 显示全部楼层
谢谢楼主,共同发展
回复

使用道具 举报

0

主题

223

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2021-3-5 15:04:09 | 显示全部楼层
看帖回帖是美德!
回复

使用道具 举报

1

主题

212

帖子

31

积分

新手上路

Rank: 1

积分
31
发表于 2021-3-5 15:27:11 | 显示全部楼层
难得一见的好帖
回复

使用道具 举报

1

主题

225

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2021-3-5 15:47:38 | 显示全部楼层
写的真的很不错
回复

使用道具 举报

1

主题

225

帖子

-9

积分

限制会员

积分
-9
发表于 2021-3-5 16:07:53 | 显示全部楼层
路过,支持一下啦
回复

使用道具 举报

0

主题

213

帖子

-28

积分

限制会员

积分
-28
发表于 2021-3-5 16:28:38 | 显示全部楼层
帮帮顶顶!!
回复

使用道具 举报

1

主题

240

帖子

-72

积分

限制会员

积分
-72
发表于 2021-3-5 16:56:35 | 显示全部楼层
不错,支持下楼主
回复

使用道具 举报

0

主题

206

帖子

-3

积分

限制会员

积分
-3
发表于 2021-3-5 17:17:54 | 显示全部楼层
谢谢楼主,共同发展
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|东莞@IT精英团

GMT+8, 2021-4-13 15:11 , Processed in 0.100270 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表