数据结构:栈(C语言实现)

隔了好几天才开始写,这几天在亲戚家里疲于奔命,话不多说,这次我们继续来学习栈。

栈给我个人的感觉就是一种倒过来的链表或者顺序表,我先选择用链表进行实现。

栈形象来说是一个杯子,每次你放进去一个元素,他都会先到杯子的底端,然后不断往上堆积;当你要取出元素的时候,你只能从最顶端开始拿,最后拿到最底端。

1.定义节点与栈

typedef struct NODE
{
    int data;//我这里以整型变量作为整个栈的元素类型
    struct NODE* next;//这是指向下一个节点的指针
}NODE,*LINK_NODE;

typedef struct stack
{
   LINK_NODE head;//这是整个站的头结点,也是栈顶,命名为top更好理解一些
   int size;//栈的大小
}stack;

2.进行初始化 

LINK_NODE initNODE(int element){
LINK_NODE newnode=(LINK_NODE)malloc(sizeof(NODE));
if (newnode == NULL) {  
        exit(EXIT_FAILURE);//处理申请内存失败的情况
    }  
newnode->data=element;//将节点中数据赋值为element
newnode->next=NULL;//先将指针定义为空
return newnode;
}
stack* initstack(){
    stack* newstack=(stack*)malloc(sizeof(stack));
     if (newstack == NULL) {  
        exit(EXIT_FAILURE);  
    }  
newstack->size=0;/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值