首页 > 代码库 > 数据结构 - 栈(C)
数据结构 - 栈(C)
/* Stack.h - by Chimomo */ #ifndef Stack_H #define Stack_H typedef int Item; typedef struct node * PNode; /*栈结点*/ typedef struct node { Item data; PNode next; } Node; /*栈*/ typedef struct stack { PNode top; int size; } Stack; /*创建空栈*/ Stack *InitStack(); /*判断栈是否为空*/ int IsEmpty(Stack *ps); /*元素入栈*/ PNode Push(Stack *ps, Item item); /*元素出栈*/ PNode Pop(Stack *ps, Item *pitem); /*返回栈顶元素*/ PNode GetTop(Stack *ps, Item *pitem); /*返回栈的大小*/ int GetSize(Stack *ps); /*遍历栈并访问visit函数*/ void StackTraverse(Stack *ps, void (*visit)(Item item)); /*清空栈*/ void ClearStack(Stack *ps); /*销毁栈*/ void DestroyStack(Stack *ps); #endif
/* Stack.c - by Chimomo */ #include<malloc.h> #include<stdlib.h> #include"Stack.h" /*创建空栈*/ Stack *InitStack() { Stack *ps = (Stack *)malloc(sizeof(Stack)); if(ps != NULL) { ps->top = NULL; ps->size = 0; } return ps; } /*判断栈是否为空*/ int IsEmpty(Stack *ps) { if(ps->top == NULL && ps->size == 0) { return 1; } else { return 0; } } /*元素入栈*/ PNode Push(Stack *ps, Item item) { PNode pnode = (PNode)malloc(sizeof(Node)); if(pnode != NULL) { pnode->data = http://www.mamicode.com/item;>数据结构 - 栈(C)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。