stack栈入门
来源:互联网 发布:java正则表达式实例 编辑:程序博客网 时间:2024/06/18 15:55
#include <stdio.h>
#include <stdlib.h>
struct node_st {
int data;
struct node_st *next;
};
static struct node_st *list = NULL;
static int is_empty(void)
{
if (list == NULL) {
return 1;
}
return 0;
}
static int is_full(void)
{
return 0;
}
int push(int data)
{
struct node_st *newnode;
if (is_full()) {
return -1;
}
newnode = malloc(sizeof(*newnode));
/* if error */
newnode->data = data;
newnode->next = list;
list = newnode;
return 0;
}
int pop(int *data)
{
struct node_st *save;
if (is_empty()) {
return -1;
}
*data = list->data;
save = list;
list = save->next;
free(save);
return 0;
}
int main(void)
{
int arr[] = {3,2,1,6,7};
int i;
int data;
int ret;
for (i = 0; i < sizeof(arr) / sizeof(*arr); i++) {
ret = push(arr[i]);
if (ret == -1) {
printf("stack full.\n");
break;
}
}
while (1) {
ret = pop(&data);
if (ret == -1) {
printf("stack empty.\n");
break;
}
printf("%d ", data);
}
printf("\n");
return 0;
}
#include <stdlib.h>
struct node_st {
int data;
struct node_st *next;
};
static struct node_st *list = NULL;
static int is_empty(void)
{
if (list == NULL) {
return 1;
}
return 0;
}
static int is_full(void)
{
return 0;
}
int push(int data)
{
struct node_st *newnode;
if (is_full()) {
return -1;
}
newnode = malloc(sizeof(*newnode));
/* if error */
newnode->data = data;
newnode->next = list;
list = newnode;
return 0;
}
int pop(int *data)
{
struct node_st *save;
if (is_empty()) {
return -1;
}
*data = list->data;
save = list;
list = save->next;
free(save);
return 0;
}
int main(void)
{
int arr[] = {3,2,1,6,7};
int i;
int data;
int ret;
for (i = 0; i < sizeof(arr) / sizeof(*arr); i++) {
ret = push(arr[i]);
if (ret == -1) {
printf("stack full.\n");
break;
}
}
while (1) {
ret = pop(&data);
if (ret == -1) {
printf("stack empty.\n");
break;
}
printf("%d ", data);
}
printf("\n");
return 0;
}
- stack栈入门
- [Python]python算法入门 -- 栈(stack)
- salt stack入门
- C++ STACK 入门
- ZigBee入门之Z-Stack协议栈总体设计
- C++ STL Stack 快速入门
- stack栈
- 栈 Stack
- STACK 栈
- 栈(stack)
- 栈 Stack
- 栈stack
- stack栈
- stack栈
- stack栈
- stack栈
- stack栈
- 栈(stack)
- 如何修改Linux系统时间 ubuntu
- 1.关于java基础中控制语句的学习
- 初识Javascript
- android之eclipse下查看android系统源代码
- Android phoneGap 源码分析之js-android通讯原理
- stack栈入门
- hdu 4666 Hyperspace
- LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程
- netlink详解
- 认识各语言的入口特征及加壳后的识别判断,及加密与压缩壳识别
- OpenCV 训练分类器(一):准备工作
- 好的好事
- 用递归颠倒一个栈
- $.extend()详解