码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-08-11 23:47:18      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:一个   信息   连续   添加元素   多个   内存   如何   nbsp   动态申请   

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、如何进行单向链表的翻转

 

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

标签:一个   信息   连续   添加元素   多个   内存   如何   nbsp   动态申请   

原文地址:https://www.cnblogs.com/westlife-11358/p/9461592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!