Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
@大熊_
LearningDataStructure-Algorithm
提交
ea9cfff7
LearningDataStructure-Algorithm
项目概览
@大熊_
/
LearningDataStructure-Algorithm
通知
4
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
LearningDataStructure-Algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ea9cfff7
编写于
11月 02, 2020
作者:
@大熊_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
小部分代码完善
上级
84904228
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
9 deletion
+20
-9
SeqStack.c
SeqStack.c
+17
-5
includes/SeqStack.h
includes/SeqStack.h
+3
-4
未找到文件。
SeqStack.c
浏览文件 @
ea9cfff7
/*
* @Description: 顺序栈
* @Author: 大熊人
* @Date: 2020-10-26 17:26:52
* @LastEditTime: 2020-10-29 00:03:16
* @LastEditTime: 2020-11-02 23:10:46
*/
#include <stdio.h>
#include <stdlib.h>
#include "includes/SeqStack.h"
...
...
@@ -17,7 +15,7 @@
int
InitStack
(
SeqStack
*
S
)
{
/*
小白
笔记:
当时的错误,顺便记下
笔记:
S必须是一个结构体指针才能完成栈的初始化 因为如果只是结构体变量的话 那么它就是一个形参(局部变量)
局部变量的改变是不会影响到函数间同名变量的改变的 因此我们需要传结构体变量S的地址
简单理解就是通过S的地址 修改结构体成员变量 入栈 出栈 都一样
...
...
@@ -95,6 +93,16 @@ int Pop(SeqStack *S, STACK_DATA_TYPE *X)
return
TRUE
;
}
/**
* @description: 返回元素个数
* @param {struct}S
* @return {int}
*/
int
SeqStackLength
(
SeqStack
S
)
{
return
S
.
top
-
S
.
base
;
}
/**
* @description: 测试顺序栈
*/
...
...
@@ -109,12 +117,16 @@ void TestSeqStack()
printf
(
"初始化失败!
\n
"
);
for
(
i
=
1
;
i
<=
5
;
i
++
)
{
printf
(
"Push:%d %s
\n
"
,
i
,
Push
(
&
S
,
i
)
?
"
入栈成功"
:
"入栈失败
"
);
printf
(
"Push:%d %s
\n
"
,
i
,
Push
(
&
S
,
i
)
?
"
TRUE"
:
"FALSE
"
);
}
printf
(
"
\n
SeqStackLength=%d
\n
"
,
SeqStackLength
(
S
));
GetTop
(
&
S
,
&
value
);
printf
(
"Top:%d
\n
"
,
value
);
while
(
Pop
(
&
S
,
&
value
))
{
printf
(
"Pop:%d "
,
value
);
}
printf
(
"
\n
SeqStackLength=%d
\n
"
,
SeqStackLength
(
S
));
free
(
S
.
base
);
}
\ No newline at end of file
includes/SeqStack.h
浏览文件 @
ea9cfff7
/*
* @Description: 顺序栈
* @Author: 大熊人
* @Date: 2020-10-25 19:19:02
* @LastEditTime: 2020-10-26 22:45:32
* @LastEditTime: 2020-11-02 23:11:32
*/
#define SEQSTACK_MAX 100 //栈的最大值
#define ADD_SIZE 10 //每次追加的值
...
...
@@ -10,8 +9,8 @@
#define FALSE 0
#define STACK_DATA_TYPE int
/* 顺序栈结构类型 */
typedef
struct
SeqS
r
ack
/* 顺序栈结构
体
类型 */
typedef
struct
SeqS
t
ack
{
STACK_DATA_TYPE
*
base
;
//栈底指针
STACK_DATA_TYPE
*
top
;
//栈顶指针
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录