• 小狼,你家BOSS喊你面试啦!!!(五)


    1、链表和数组的区别

    (1)逻辑结构:数组大小是在声明数组时就要知道;链表大小动态申请,不必事先知道。

    (2)存储位置:数组(栈上一段连续的内存);链表(动态申请的堆内存,可以是不连续的内存)

    (3)特点不同:数组的特点是随机访问效率高,但是删除和添加元素效率低,要移动多个元素;链表则是增加和删除结点效率高,但要访问只能从链表的头开始遍历,随机访问时效率低。

    (4)数组有越界问题;链表则不会存在越界问题。

    2、何时选用顺序表、何时选择链表作为线性表的存储结构为宜

    如果经常查找、随机访问,则用顺序表;如果经常进行增删操作,就用链表。

    3、如何使用链表头

    这里就是头结点和头指针的概念了。单链表的头结点数据域没有数据(或者有链表长度信息等),头结点指针域指向第一个链表的第一个元素。

    头指针就是指向链表开始结点(第一个结点)的指针。

    4、如何实现单链表的插入和删除操作

    这里简写啦,因为在数据结构章节有这部分的输入。

    插入结点s:s->next=p->next;p->next=s;

    删除结点s:r=p->next;p->next=r->next;free(p)

    5、如何找出单链表中倒数第K个元素

    维持两个索引,一个先行,直到第一个走了K-1个元素后,两个指针再一起移动,每次移动一步;等先行的指针为NULL时,第二个指针就指向倒数第K个了。

    6、如何进行单向链表的翻转

     反转后头结点变成尾结点了

  • 相关阅读:
    C# 枚举、字符串、值的相互转换
    What's New in v2010 vol 2.5
    Using Oracle's Parallel Execution Features
    [zhuan]asp.net程序性能优化的七个方面 (c#(或vb.net)程序改进)
    ORACLE常用网址
    html中的块元素(block element)和内联元素(inline element)
    软件构架师的特点
    窗体信息处理函数讲解
    [xue]软件项目经理所必需具备的素质
    Gulp系列文章入门Gulp
  • 原文地址:https://www.cnblogs.com/westlife-11358/p/9461592.html
Copyright © 2020-2023  润新知