1.数组

  • 数组链表区别:数组查找容易,插入删除麻烦,链表插入删除容易,查找麻烦;数组申请的是连续内存空间,链表不一定要连续;数组申请空间大小编译期就要确定,链表动态申请内存
  • 数组实现栈: 加个指针指向栈顶,入栈就往栈顶后面一个位置放数据,

    2.栈 ,队列

  • 区别:栈先进后出,队列先进先出
  • 两个栈实现队列:入队是将数据一次压入第一个栈,出队时,将数据依次弹出压入第二个栈,然后第二个栈弹栈,就是要出队的数据,最后把剩下的数据返回到第一个栈 时间复杂度O(n)
  • 含min函数的栈:用另外一个最小值栈来存当前最小值,当 push数据切数据比最小元素还小时,把新节点再压入最小值栈;否则,直接把数据入栈。当pop()时,如果当前要弹出的元素是栈的最小元素,则在最小值栈中同时也出栈,以更改最小元素;否则只弹出当前栈元素。

results matching ""

    No results matching ""