C链栈删除数据

#include <stdio.h>
#include <stdlib.h>

typedef struct mylinkstack{
    char mych;
    struct mylinkstack *next;
} myls;

myls *mypush(myls *myls2,char ch)
{
    myls *line = (myls*)malloc(sizeof(myls));
    line->mych = ch;
    line->next = myls2;
    myls2 = line;
    return myls2;
}

void myshow(myls *myls3){
    myls *temp = myls3;
    while(temp){
        printf("%c\n",temp->mych);
        temp = temp->next;
        
    }
}

myls * mypop(myls * myls3){
    if(myls3){
        myls *p=myls3;
        printf("未被赋值前:%c\n",myls3->mych);
        myls3 = myls3->next;//此处把链节点的下一个内容全部赋值给myls3
        printf("出栈元素:%c\t",p->mych);
        
        if(myls3)
        {
            printf("栈顶元素:%c\n",myls3->mych);
        }else{
            printf("栈已空");
        } 
        free(p);
    }else{
        printf("栈内没有元素");
    } 
    return myls3; 
}

int main(){
    myls *myls1 = NULL;
    int i;
    for(i=0;i<10;i++){
        myls1 = mypush(myls1,'A'+i);
    }
    printf("已成功插入10个元素"); 
    myshow(myls1);
    for(i=0;i<3;i++){
        myls1 = mypop(myls1);
    }
    printf("删除3个元素后"); 
    myshow(myls1);
}

PS:栈------先进后出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值