首页 > 其他 > 详细

栈---链表实现

时间:2014-07-07 23:47:44      阅读:497      评论:0      收藏:0      [点我收藏+]

栈:是一种后进先出(LIFO)的结构,对其插入删除只能在栈顶进行;

链表实现


  • 节点:
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct Node *PtrToNode;
    typedef PtrToNode Stack;
    
    struct Node{
       int Element;
       struct Node *Next;
    }

     

  • 进栈(push):
    void Push(int x,Stack s)
    {
       PtrToNode p;
       p = (PtrToNode)malloc(sizeof(struct Node));
       if(p==NULL)
         printf("out of space!\n");
       else
          {
              p->Element = x;
              p->Next = s->Next;
              s->Next = p;
           
          }
    }
  • 返回栈顶元素(TOP):
    int Top(Stack s)
    {
        if(s->Next!=NULL)
            return s->Next->Element;
    }
  • 出栈(POP):
    void Pop(stack s)
    {
       PtrToNode tmp;
       if(s->Next!=NULL)
        {
             tmp = s->Next;
             s->Next = tmp->Next;
             free(tmp);
    
        }
      else
        printf("The stack is empty!\n");
    }

     

栈---链表实现,布布扣,bubuko.com

栈---链表实现

原文:http://www.cnblogs.com/avengervirus/p/3812716.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!