去一公司面试,由于HR没说清地址,找到此公司可谓历经九九八十一难,终于找到,结果又等了面试的人半个到一小时的样子,一肚子火,本来想走的,后来想想来了看看情况吧!面试...[很墨迹],完了那哥们居然说去上机,还问我不介意吧,我说好吧...
那哥们摆弄了半天电脑终于把环境整好,给我题了:继承List做一个LinkedList实现add,remove,isEmpty,size功能。
憋了一肚子火,怎么也静不下心来。再者之前也很长时间没编码了,整了半天我也没做出来,也很郁闷!今天静下心来,实现了。主要代码如下:
写道
public class LinkedList extends LinkedListImpl{
public Node head;
public Node tail;
public int size;
@Override
public void add(Node node) {
// TODO Auto-generated method stub
node.front = this.tail;
node.next = null;
this.tail.next = node;
this.tail.front = this.tail;
this.tail = node;
this.size++;
}
@Override
public Object remove(int index) {
// TODO Auto-generated method stub
Node tmpNode = new Node();
tmpNode = this.head;
int tmp = 0;
while(tmpNode != null){
tmp++;
//当删除第一个元素时
if(index == 1){
this.head = tmpNode.next;
//list大小减1
this.size--;
break;
}
//当删除最后一个元素时
if(this.size() == index){
this.tail = this.tail.front;
this.tail.next = null;
//list大小减1
this.size--;
break;
}
//删除中间元素时
if(tmp == index){
tmpNode.front.next = tmpNode.next;
tmpNode.next.front = tmpNode.front;
//list大小减1
this.size--;
break;
}
tmpNode = tmpNode.next;
}
return null;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return this.head == null;
}
@Override
public int size() {
// TODO Auto-generated method stub
Node tmpNode = new Node();
tmpNode = this.head;
int count = 0;
while(tmpNode != null){
count++;
tmpNode = tmpNode.next;
}
return count;
}
附上实现在附件中。
分享到:
相关推荐
数据结构,LinkedList在c++的实现,一共有三个头文件:Link.h 、List.h 、LinkedList。
.NET框架中的LinkList,实现的是双向链表,总结下它的实现源码。 LinkedList提供的公有属性和方法的导图
List-LinkedList 单链表就地反转 的代码的一种实现。
源码解析jdk7.0集合:LinkedList的底层实现原理.pdf
1.List是接口类,ArrayList和LinkedList是List的实现类 2.ArrayList是动态数组(顺序表)的数据结构 3.LinkedList
LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或...LinkedList 实现 List 接口,能对它进行队列操作。 LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用。
首先,List接口继承于Collection接口,其中的所有方法都被继承,而Collection是无序、无下标,元素不可重复的,List是有序,有下标,元素可以重复,所以,List就有一些自己独有的方法。和数组相比较更加灵活,方便。...
List<String> l1=new LinkedList();//使用泛型 //List l1= new LinkedList(); int index=0; //插入元素 l1.add("firstElement"); l1.add("secondElement"); l1.add("thirdElement"); //访问索引 ...
本文实例讲述了C#双向链表LinkedList排序实现方法。分享给大家供大家参考。具体如下: 1.函数 打印链表函数PrintLinkedList 和 排序函数SortLinkedList 注:下面代码中的链表每项都是double类型,如果换做其他的类型...
7.2.2 LinkedList实现类;7.2.2 LinkedList实现类;7.2.2 LinkedList实现类;7.2.2 LinkedList实现类;7.2.2 LinkedList实现类;7.2.2 LinkedList实现类;7.2.3 学生实践练习(一);7.2.3 学生实践练习(一);7.2.3 学生...
// 常用的list接口的实现类有ArrayList和LinkedList // 学习map对象容器的使用 // map对象容器里面储存的元素是(key,value)形式的键值对,比如(a,1)(b,20)(c,55) // key不可以重复,value可以重复 // 常用的map接口...
javalist数据结构_Java数据结构-------List 三种List:ArrayList,Vector,LinkedList 类继承关系图 ArrayList和Vector通过数组实现,⼏乎使⽤了相同的算法;区别是ArrayList不是线程安全的,Vector绝⼤多数⽅法做了...
LinkedList与ArrayList都是List接口的具体实现类。下面将介绍如何实现一个简单的LinkedList,具有很好的参考价值,下面跟着小编一起来看下吧
列表ADT LinkedList,Doubly LinkedList和ArrayList的Python实现
Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别ArrayList底层实际是采用数组实现的(并且该数组的类型是
本教程特点: 1.更适合零基础学员: ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅...
今天小编就为大家分享一篇关于Java LinkedList的实现原理图文详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
用linked list来写priority queue