一步一步写算法--栈
2013-06-13 09:02
288 查看
写在stack.h头文件中
源程序
源程序
#ifndef STACK #define STACK #include "stdio.h" typedef char TElemType; typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; typedef struct LinkNode { BiTree data; struct LinkNode *next; }Node; typedef struct{ Node *top; }LiStack; void InitStack(LiStack &s) { s.top=(Node *)malloc(sizeof(Node)); if(!s.top) return; s.top->next=NULL; } int StackEmpty(LiStack s) { if(s.top->next==NULL) return 1; else return 0; } void Push(LiStack &s,BiTree e) { Node *p; p=(Node *)malloc(sizeof(Node)); if(!p) return ; p->data=e; p->next=s.top->next; s.top->next=p; } void Pop(LiStack &s,BiTree &e) { Node *p; if(StackEmpty(s)) return; else { p=s.top->next; e=p->data; s.top->next=p->next; free(p); } } void GetTop(LiStack &s,BiTree &e) { Node *p; if(StackEmpty(s)) return; else { p=s.top->next; e=p->data; //s.top->next=p->next; //free(p); } } #endif
相关文章推荐
- 一步一步写算法(之链表逆转)
- 一步一步写算法(之 算法总结)【转】
- 一步一步写算法(之排序二叉树线索化)
- 一步一步写算法(之图创建)
- 一步一步写算法(之哈希二叉树)
- 一步一步写算法(之堆排序)
- 一步一步写算法(之循环单向链表)
- 一步一步写算法(之hash表)
- 一步一步写算法(之prim算法 上)
- 一步一步写算法(之 A*算法)
- 一步一步写算法(之循环单向链表)
- 一步一步写算法(之洗牌算法)
- 一步一步写算法
- 一步一步写算法(之寻路)
- 一步一步写算法(之哈希二叉树)
- 一步一步写算法(之 A*算法)
- 一步一步写算法(之通用数据结构)
- 一步一步写算法(之排序二叉树)
- 一步一步写算法(之 A*算法)
- 一步一步写算法(之入栈出栈)