zoukankan      html  css  js  c++  java
  • 栈的链表简易实现

    栈的特点:后入先出,只能从栈顶往栈底一个一个压,取的时候也只能从栈顶一个一个取出来;

    下面是简易的实现:

    #include<stdlib.h>
    #include<stdio.h>
    #include<malloc.h>
    #define NODE_SIZE sizeof(struct Node)
    typedef int Number;
    typedef struct Node * Stack;
    struct Node{
       Number data;
       Stack next;
    };
    Stack distribute()
    {
        Stack sta = (Stack)malloc(NODE_SIZE);
        if(sta == NULL)
        {
            printf("资源分配失败!");
            exit(-1);
        }
        return sta;
    }
    Stack init()
    {
        Stack s = distribute();
        s->data = -1;
        s->next=NULL;
        return s;
    }
    void push(Stack sta,Number num)
    {
      Stack s = distribute();
      s->next=sta;
      s->data=num;
      sta = s;
    }
    Number pop(Stack sta)  //取出栈顶的值
    {
    if(sta->next!=NULL)
    { Stack s
    = sta->next; sta->next=sta->next->next; return s->data;
    }
    printf("栈为空"); exit(-1);
    } Number
    get(Stack sta) //查看栈顶元素的值 不取出 { if(sta->next!=NULL){ return sta->next->data; } printf("栈为空"); exit(-1); } void print(Stack sta) { sta=sta->next; while(sta->next != NULL){ printf("%d ",sta->data); sta = sta->next; } } void main() { Stack sta = init(); push(sta,1); push(sta,3); print(sta); }
  • 相关阅读:
    计算机网络基础知识整理
    计算机操作系统知识整理
    各类编程语言的主要用途
    计算机的基本组成知识整理
    对IT行业的看法和对软件工程的理解
    正规文法转换
    语法树评论
    c语言文法定义
    词法分析
    0909我对编译原理的见解
  • 原文地址:https://www.cnblogs.com/LIUWEI123/p/7695276.html
Copyright © 2011-2022 走看看