• 栈的链表简易实现


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

    下面是简易的实现:

    #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); }
  • 相关阅读:
    旋转数组的最小数字
    Redis常用方法
    用两个栈实现队列
    Spark1.4启动spark-shell时initializing失败
    从尾到头打印链表
    Hbase的安装(hadoop-2.6.0,hbase1.0)
    执行sh文件 进行MongoDB的业务逻辑导入
    Scala第二章学习笔记
    替换空格
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/LIUWEI123/p/7695276.html
Copyright © 2020-2023  润新知