【C语言数据结构】链栈

  

LinkStack。h

 # include“LinkStack.h”
  # include“LinkList.h”
  # include“malloc.h”
  
  typedef struct _tag_LinkStackNode
  {
  LinkListNode节点;
  void *项;
  
  }TLinkStackNode;
  
  LinkStack * LinkStack_Create ()
  {
  返回LinkList_Create ();
  }
  
  空白LinkStack_Destroy (LinkStack *栈)
  {
  LinkStack_Clear(栈);
  LinkList_Destroy(栈);
  
  }
  
  空白LinkStack_Clear (LinkStack *栈)
  {
  而(LinkStack_Size(栈)> 0)
  {
  LinkStack_Pop(栈);
  }
  }
  
  int LinkStack_Push (LinkStack *栈,void *项)
  {
  TLinkStackNode *节点=(TLinkStackNode *) malloc (sizeof (TLinkStackNode));
  int ret=((项目!=0)& &(节点!=0));
  
  如果(ret)
  {
  节点->项目=项目;
  ret=LinkList_Insert(栈(LinkListNode *)节点,0);
  }
  
  如果(ret)
  {
  免费(节点);
  }
  
  返回受潮湿腐烂;
  }
  
  void * LinkStack_Pop (LinkStack *栈)
  {
  TLinkStackNode *节点=(TLinkStackNode *) LinkList_Remove(堆栈,0);
  void * ret=0;
  如果(节点!=0)
  {
  ret=节点->项目;
  免费(节点);
  }
  
  返回受潮湿腐烂;
  }
  
  void * LinkStack_Top (LinkStack *栈)
  {
  TLinkStackNode *节点=(TLinkStackNode *) LinkList_Remove(堆栈,0);
  void * ret=0;
  如果(节点!=0)
  {
  ret=节点->项目;
  }
  
  返回受潮湿腐烂;
  }
  
  int LinkStack_Size (LinkStack *栈)
  {
  返回LinkList_Length(栈);
  }


【C语言数据结构】链栈