栈的定义及应用场景

栈是仅限定从尾部进行插入和删除操作的线性表结构。具有先进后出,后进先出的特性。

栈的应用实例

1、数制转化

2、括号匹配校验

3、迷宫求解

4、实现递归-汉诺塔


/**
 * n表示圈编号,此函数表示将编号n及以上的圈从a,借助于b,移至c
 */
function hannuota($n,$a,$b,$c){
    if($n==1){
        mov($a,1,$c);    //将1号圈从a移到c
    }else{
        hannuota($n-1,$a,$c,$b);  //将编号n之上的n-1个圈,移至b,借助于c
        mov($a,$n,$c);            //将编号n移至c
        hannuota($n-1,$b,$a,$c);  //再将b上n-1个圈移至c的n圈上面
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据结构是计算机科学中的基础概念,它定义了数据的组织和存储方式,以及与这些数据操作相关的算法。常见的数据结构包括: 1. 数组(Array):一种线性数据结构,存储相同类型的元素,适用于连续访问和随机访问,如数组索引。应用场景:动态数组(如动态规划)、数组排序(如快速排序)等。 2. 链表(Linked List):由节点组成,每个节点包含数据和指向下一个节点的指针,支持高效插入和删除。链表分为单向、双向和循环链表。应用场景:队列和的实现,内存管理等。 3. (Stack):后进先出(LIFO)的数据结构,常用于表达式求值、函数调用堆等。 4. 队列(Queue):先进先出(FIFO)的数据结构,如消息队列,网络通信中的数据传输等。 5. 树(Tree):非线性数据结构,分为二叉树(如二叉搜索树、AVL树、红黑树)、平衡树(如B树、B+树)等,用于文件系统、目录结构等。 6. 图(Graph):由顶点和边构成,用于描述复杂的关系,如社交网络、路由算法等。 7. 哈希表(Hash Table)或哈希集合(Hash Set):通过哈希函数将键直接映射到存储位置,实现快速查找,如字典和数据库索引。 8. 堆(Heap):通常用于优先队列,如最小堆(优先处理小元素)和最大堆(优先处理大元素)。 9. 字典树(Trie):用于字符串搜索和自动补全,搜索引擎和拼写检查器中常见。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值