数据结构-栈

一、栈的数据类型

      包括三个成员分别是:ElemType * base; size_t capacity; int top; 分别是指向栈首元素的base指针,以及容量capacity 、和栈顶位置top

    

二、栈的结构表示

三、栈有关的重要函数

1.栈的初始化函数

2.入栈、出栈

        入栈:先进后出,首先栈要非满,st->len < st->capacity,最后记得给top++

       出栈:后进先出,首先栈要非空,只需把top—就行

3.获取栈顶元素

      获取栈顶元素:函数返回一个元素类型,先断言非空,return st->base[st->top-1],注意这里是top-1,而不是top--,我们只是获取栈顶元素,并不是让其出栈、

4.栈的判空

      栈的判空:函数返回一个bool类型,直接return st->top == 0,为0就是 0 == 0 为真,返回true 否者返回 false

四、栈的应用

1.将十进制数,转换成2进制数

A.借助栈,

思想是:让2去除十进制的数,每次余数先进栈,然后结果就出栈。

        栈要容得下,二进制数,先进栈就循环,循环条件是value != 0 ,也就是while(value);每次把余数进栈push(&st,value%2);再把value /= 2;value除2赋值给value;要得到数据就出栈,利用循环,循环条件就是栈不空while(!empty),cout<<gettop(&st); pop(&st);












B.利用数组(int类型的数组)

      思想:先申请一块内存用于反着存储数据,还是取模,然后正着输出;

      函数的返回值是一个int的指针,申请数组数组大小是int*8(因为一位有8个字节),然后i从后面起存储mol ,int mol = value %2;arr[i] = mol; value /= 2; return 指针 注意,在函数内部使用的变量,要在函数外部使用,就需要用关键之static 将栈区的自动变量,变为全局变量放在全局数据去,供本文件使用,直至本次程序结束。

C.利用字符数组(char 类型的字符数组)

        申请的空间32+1+3 一个int在32位就是32个字符+1个'\0'和' '空格,函数内部变量,在外部使用,使用static

2.十进制转换成十六进制

必须用到字符char类型的数组,或者指针

指针:

字符数组:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值