数据结构中常见面试题总结
1. 单链表
(1)编程实现一个单链表搜的建立/测长/打印。
如果实现单链表,我们首先需要做的就是实现一个结点的定义,在C语言或者是C++语言中,我们使用的是结构体进行定义的,在Java中我们常使用类来实现链表结点的定义,
我们可以定义一个Node类,来表示链表中的结点。首先定义Node类,在Node类中,我们需要定义存放结点值的变量以及指向下一个结点的结点。
Node.Java类
1 |
|
定义完链表之后,我们需要定义实现链表中的方法,主要是实现链表的插入结点方法,测试链表的长度,打印链表中的值等方法,
MyLinkedList.java 链表方法类
1 |
|
上面定义完链表中结点的表示,以及链表中新增,求长,打印的方法之后,我们需要进行测试,测试方法如下:
testLink.Java 测试方法类
1 |
|
(2)编程实现单链表删除结点
删除链表中的结点的方法,有按照值删除的方法和按照链表位置删除的方法
要删除结点,只需要找到要删除结点前面的结点就行
我们继续在上面链表方法类MyLinkedList中添加操作链表的方法。。
书写按值查找和按照索引位置进行查询的方法
1 |
|
(3)编程实现单链表的排序操作。
(4)编程实现单链表的逆序
(5)给一个单链表,不知道结点N的值,怎么样只遍历一次就可以求出中间结点,写出算法