栈的C语言实现源码

来源:互联网 发布:软件架构图 编辑:程序博客网 时间:2024/06/03 15:38
struct Node;typedef struct Node* pNode;typedef pNode Stack;struct Node{ElemType elem;pNode next;}int IsEmpyt(Stack s){return (s->next == NULL);}Stack CreateStack(){Stack s;if( !(s = (pNode)malloc(sizeof(struct Node)))){perror("create error!");}else{s->next = NULL;return s;}}void Push(Stack s, ElemType elem){pNode pTmpNode = (pNode) malloc(sizeof(struct Node));if(pTmpNode == NULL){FatalError("Out of space");}else{pTmpNode->elem = elem;pTmpNode->next = s->next;s->next = pTmpNode;}}int Top(Stack s){if(!IsEmpyt(s))return s->next->elem;elseperror("Empty stack");}void Pop(Stack s){pNode pFirst;if(IsEmpyt(s))perror("Empty stack");else{pFirst = s->next;s->next = s->next->next;free(pFirst);}}

1 0
原创粉丝点击