链式堆栈
来源:互联网 发布:非诚勿扰李纳的淘宝店 编辑:程序博客网 时间:2024/06/10 08:02
#include<stdio.h>
#include<stdlib.h>
typedef int ElementType;
typedef struct SNode * Pointer;
struct SNode {
ElementType data;
Pointer next;
};
Pointer CreateStack(); //创建堆栈
Pointer Push(ElementType x, Pointer S); //入栈
int IsEmpty(Pointer S); //判断是否为空
ElementType Pop(Pointer S); //出栈
int main()
{
Pointer head;
head = CreateStack();
int i;
for (i = 0; i < 5; i++)
{
Push(i, head);
}
while (head->next)
{
printf("%d\n", Pop(head));
}
return 0;
}
Pointer CreateStack()
{
Pointer head;
head = (Pointer)malloc(sizeof(struct SNode));
head->next = NULL;
return head;
}
int IsEmpty(Pointer S)
{
if (S->next == NULL) return 1;
else return 0;
}
Pointer Push(int x, Pointer S)
{
Pointer head;
head = (Pointer)malloc(sizeof(struct SNode));
head->data = x;
head->next = S->next;
S->next = head;
return S;
}
ElementType Pop(Pointer S)
{
if (IsEmpty(S))
{
printf("栈为空\n");
return 0;
}
ElementType x;
x = S->next->data;
Pointer P = S->next;
S->next = S->next->next;
free(P);
return x;
#include<stdlib.h>
typedef int ElementType;
typedef struct SNode * Pointer;
struct SNode {
ElementType data;
Pointer next;
};
Pointer CreateStack(); //创建堆栈
Pointer Push(ElementType x, Pointer S); //入栈
int IsEmpty(Pointer S); //判断是否为空
ElementType Pop(Pointer S); //出栈
int main()
{
Pointer head;
head = CreateStack();
int i;
for (i = 0; i < 5; i++)
{
Push(i, head);
}
while (head->next)
{
printf("%d\n", Pop(head));
}
return 0;
}
Pointer CreateStack()
{
Pointer head;
head = (Pointer)malloc(sizeof(struct SNode));
head->next = NULL;
return head;
}
int IsEmpty(Pointer S)
{
if (S->next == NULL) return 1;
else return 0;
}
Pointer Push(int x, Pointer S)
{
Pointer head;
head = (Pointer)malloc(sizeof(struct SNode));
head->data = x;
head->next = S->next;
S->next = head;
return S;
}
ElementType Pop(Pointer S)
{
if (IsEmpty(S))
{
printf("栈为空\n");
return 0;
}
ElementType x;
x = S->next->data;
Pointer P = S->next;
S->next = S->next->next;
free(P);
return x;
}
阅读全文
0 0
- 链式堆栈
- 链式堆栈
- 链式堆栈
- 链式堆栈
- 链式堆栈
- 链式实现的堆栈
- 链式堆栈实现
- 泛型链式堆栈
- 链式堆栈的实现
- 堆栈--链式存储
- 链式结构的堆栈
- 数据结构--链式堆栈
- 链式堆栈.c
- 链式堆栈的实现 (带头节点的链式堆栈)
- 测试链式堆栈的实例
- c 堆栈的链式存储
- 堆栈的链式储存实现
- 用链表实现堆栈--链式栈
- 常用的数量统计量的计算及统计意义
- 增1和减1运算符
- 爬取邮箱,出现带有文字的处理
- 使用OpenCV自带的级联分类器进行目标检测
- 欢迎使用CSDN-markdown编辑器
- 链式堆栈
- 窗口界面
- ubuntu14.04 安装 php Composer时 composer:未找到命令
- SSL/TLS 双向认证(三) -- ESP8266与mosquitto的MQTT双向认证
- javascript 字符串属性
- 3秒钟不懂你砍我:Toolbar,没有废话的纯教程
- 身份证验证java工具类(纠正网上流行代码错误)
- java基础知识--lambda表达式
- postgreSQL默认的隔离级别及修改