zoukankan      html  css  js  c++  java
  • 链栈的基本操作 C语言

    #include<stdio.h>
    #include<stdlib.h>
    typedef char ElementType;
    typedef struct node* LinkStack;
    struct node {
        ElementType data;
        LinkStack next;
    };
    //初始化
    void InitLinkStack(LinkStack *L) {
        (*L) = NULL;
    }
    //入栈
    void PushStack(LinkStack *L, ElementType x) {
        LinkStack s;
        s = (LinkStack)malloc(sizeof(struct node));
        s->data = x;
        s->next = (*L); //L是栈顶元素
        (*L) = s;  //s成为新的栈顶元素
    }
    //出栈
    void PopStack(LinkStack *L, ElementType *x) {
        if ((*L)->next == NULL) {
            printf("空栈");
        }
        else {
            LinkStack p;
            *x = (*L)->data;
            p = (*L);  //标记栈顶
            (*L) = (*L)->next;
            free(p); //出栈
        }
    }
    void PrintNode(LinkStack L) {
        while (L != NULL) {
            printf("%c", L->data);
            L = L->next;
        }
        printf("
    ");
    }
    int main() {
        LinkStack s;
        ElementType c;
        ElementType* y;
        y = &c; 
        InitLinkStack(&s);
        printf("入栈元素为:
    ");
        scanf("%c", &c);
        while (c != '
    ') {
            PushStack(&s, c);
            scanf("%c", &c);
        }
        PrintNode(s);
        PopStack(&s, y);
        printf("出栈元素为:%c
    ", *y);
        printf("栈中剩余元素为:
    ");
        PrintNode(s);
    }
  • 相关阅读:
    Mybatis在oracle批量更新
    WebService小记
    java基本排序
    ant使用
    python 集合
    amazon-aws 使用 SNS 发送短信
    Html5+ 开发APP 后台运行代码
    CentOS7 -防火墙
    java 模拟表单方式提交上传文件
    修改pom项目版本 jenkins 关联 shell命令
  • 原文地址:https://www.cnblogs.com/yudongxuan/p/7728195.html
Copyright © 2011-2022 走看看