堆栈的链表实现

文章目录

Code

#include<stdio.h>
//程序结构
//首先接受输入(头结点位置,结点个数,翻转子表长度)。
//使用堆栈,先进后出。--堆栈的链式存储实现
//利用Length判断堆栈的pop时机。

typedef int ElemenType;
typedef struct SNode *Stack;             //Stack 堆栈

struct SNode{   
    ElemenType address             
    ElemenType Data;
    struct SNode *Next;    
};


Stack CreateStack(){
    /*构建一个堆栈的头结点,返回指针*/
    Stack S;
    S = (Stack)malloc(sizeof(struct SNode));
    S->Next = NULL;
    return S;
}

int isEmpty(Stack S){
    /*判断堆栈S是否为空,若为空函数则返回整数1.否则返回0*/
    return(S->Next==NULL)
}





int main (){
    node *p;
    scanf("%d %d %d",&node,&N,&Length);
    for(int i = 1;i<N;i++){
        scanf("%d %d %d",&p,&p->data,&p->Next)
        
}

    
}

void push(ElemenType item,Stack S){
    /*将元素item压入堆栈S*/
    struct SNode *Temcell;
    Temcell =(struct SNode *)malloc(sizeof(struct SNode));
    Temcell->Element = item;
    Temcell->Next = S->Next;
    S->Next = Temcell;

}

ElemenType pop(Stack S){
    struct SNode *FirstCell;
    ElemenType TopElem;
    if(isEmpty(S)){
        print("堆栈为空");return NULL;
    }
    else{
        FirstCell=S->Next;
        s->Next=FirstCell->Next;
        TopElem=FirstCell->Element;
        free(FirstCell);
        return TopElem;
    }
}

update

我现在可以写出push()和pop()函数,还要写出其作用对象。
那么利用什么联系起来呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值