芽筑说吧 关注:94贴子:1,861

回复:程序员面试遇到的问题

只看楼主收藏回复

预防
1)有序资源分配法
2)银行家算法


107楼2018-09-10 15:41
回复
    什么是数据结构?
    简单地说,数据结构是以某种特定的布局方式存储数据的容器。这种“布局方式”决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的。首先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构。


    108楼2018-09-13 17:08
    回复
      为什么我们需要数据结构?
      数据是计算机科学当中最关键的实体,而数据结构则可以将数据以某种组织形式存储,因此,数据结构的价值不言而喻。
      无论你以何种方式解决何种问题,你都需要处理数据——无论是涉及员工薪水、股票价格、购物清单,还是只是简单的电话簿问题。


      109楼2018-09-13 17:09
      回复
        数据需要根据不同的场景,按照特定的格式进行存储。有很多数据结构能够满足以不同格式存储数据的需求。
        常见的数据结构
        首先列出一些最常见的数据结构,我们将逐一说明:
        数组

        队列
        链表


        字典树(这是一种高效的树形结构,但值得单独说明)
        散列表(哈希表)


        110楼2018-09-13 17:09
        回复
          数组的基本操作
          Insert——在指定索引位置插入一个元素
          Get——返回指定索引位置的元素
          Delete——删除指定索引位置的元素
          Size——得到数组所有元素的数量


          111楼2018-09-13 17:09
          回复
            面试中关于数组的常见问题
            寻找数组中第二小的元素
            找到数组中第一个不重复出现的整数
            合并两个有序数组
            重新排列数组中的正值和负值


            112楼2018-09-13 17:09
            回复
              著名的撤销操作几乎遍布任意一个应用。但你有没有思考过它是如何工作的呢?这个问题的解决思路是按照将最后的状态排列在先的顺序,在内存中存储历史工作状态(当然,它会受限于一定的数量)。这没办法用数组实现。但有了栈,这就变得非常方便了。


              113楼2018-09-13 17:10
              回复
                栈的基本操作
                Push——在顶部插入一个元素
                Pop——返回并移除栈顶元素
                isEmpty——如果栈为空,则返回true
                Top——返回顶部元素,但并不移除它


                114楼2018-09-13 17:10
                回复
                  面试中关于栈的常见问题
                  使用栈计算后缀表达式
                  对栈的元素进行排序
                  判断表达式是否括号平衡


                  115楼2018-09-13 17:10
                  回复
                    队列
                    与栈相似,队列是另一种顺序存储元素的线性数据结构。栈与队列的最大差别在于栈是LIFO(后进先出),而队列是FIFO,即先进先出。
                    一个完美的队列现实例子:售票亭排队队伍。如果有新人加入,他需要到队尾去排队,而非队首——排在前面的人会先拿到票,然后离开队伍。


                    116楼2018-09-13 17:10
                    回复
                      队列的基本操作
                      Enqueue()——在队列尾部插入元素
                      Dequeue()——移除队列头部的元素
                      isEmpty()——如果队列为空,则返回true
                      Top()——返回队列的第一个元素


                      117楼2018-09-13 17:11
                      回复
                        面试中关于队列的常见问题
                        使用队列表示栈
                        对队列的前k个元素倒序
                        使用队列生成从1到n的二进制数


                        118楼2018-09-13 17:11
                        回复
                          链表
                          链表是另一个重要的线性数据结构,乍一看可能有点像数组,但在内存分配、内部结构以及数据插入和删除的基本操作方面均有所不同。
                          链表就像一个节点链,其中每个节点包含着数据和指向后续节点的指针。 链表还包含一个头指针,它指向链表的第一个元素,但当列表为空时,它指向null或无具体内容。


                          119楼2018-09-13 17:11
                          回复