美文网首页
2019-03-04 数据结构

2019-03-04 数据结构

作者: 做一只乐观的小猴子 | 来源:发表于2019-03-04 11:09 被阅读0次

    https://blog.fundebug.com/2018/08/27/code-interview-data-structure/

    https://www.jianshu.com/p/230e6fde9c75

    1. 数组(Array): 每一个数组元素的位置由数字编号,称为下标或者索引(index) 

    基本操作: Inset,Get,Delete,Size

    查找数组中第二小的元素

    查找第一个没有重复的数组元素

    合并2个排序好的数组

    重新排列数组中的正数和负数

    2. 栈 (Stack):  栈中的元素采用LIFO (Last In First Out),即后进先出.

                  eg.撤回,即Ctrl+Z,是我们最常见的操作之一:把之前的应用状态(限制个数)保存到内存中,最近的状态放到第一个.

    栈的基本操作 (栈有初始化、压栈、出栈、判空、遍历、清空等主要方法) 都是对栈顶的元素进行操作

    stack.size()

    Push — 在栈的最上方插入元素 

    Pop — 返回栈最上方的元素,并将其删除

    Top — 返回栈最上方的元素,并不删除 (stack.peek())

    isEmpty — 查询栈是否为空

    使用栈计算后缀表达式

    使用栈为栈中的元素排序

    检查字符串中的括号是否匹配正确

    用两个栈来实现队列的存取

    3. 队列

    队列(Queue)与栈类似,都是采用线性结构存储数据。它们的区别在于,栈采用LIFO方式,而队列采用先进先出,即FIFO(First in First Out)

    队列的基本操作 queue.size() queue.isEmpty()

    Enqueue — 在队列末尾插入元素 (boolean add(e)= offer(e))

    Dequeue — 将队列第一个元素删除 (e=poll():  null; e=remove(): oSuchElementExceptio)

    isEmpty — 查询队列是否为空

    Top — 返回队列的第一个元素(peek(): null;    element(): NoSuchElementException)

    Python: It is especially useful in threaded programming when information must be exchanged safely between multiple thread

    >>>q=Queue()   ;   >>>q.size() ;    >>>q.empty() ;  >>>q.put(e); >>>q.get([block]) Remove and return an item from the queue.

    >>>q.task_done() 

    >>> q.join() Blocks until all items in the queue have been gotten and processed.

    使用队列实现栈

    倒转队列的前K个元素

    使用队列将1到n转换为二进制

    4. 链表

    5. 图

    6. 树

    7. 前缀树

    8. 哈希表

    相关文章

      网友评论

          本文标题:2019-03-04 数据结构

          本文链接:https://www.haomeiwen.com/subject/ufpbuqtx.html