`

LinkedList实现List一些方法

    博客分类:
  • java
 
阅读更多

去一公司面试,由于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的实现.zip

    在这个“LinkedList的实现.zip”文件中,我们有三个头文件——Link.h、List.h和LinkedList,它们共同构成了LinkedList的数据结构及其操作的实现。 首先,`Link.h`通常会定义单链表中的节点结构。节点结构可能包括一...

    用LinkedList实现队列和栈

    在Java编程语言中,`LinkedList` 是一个常用的集合类,它实现了`List`接口,并且提供了额外的功能,如双端操作。本篇文章将探讨如何利用`LinkedList`来实现队列和栈这两种数据结构,以及其背后的原理和源码分析。 #...

    源码解析jdk7.0集合:LinkedList的底层实现原理.pdf

    首先,LinkedList实现了List接口,因此它是一个有序列表。它还实现了Deque接口,这意味着LinkedList支持双端队列的操作。除了这些接口之外,LinkedList还是Cloneable和java.io.Serializable的,表示它可以被克隆以及...

    List-LinkedList 单链表就地反转

    ### List-LinkedList 单链表就地反转 #### 概述 本文主要介绍单链表的就地反转算法实现,并通过具体的C语言代码示例来解释这一过程。单链表是一种常见的线性数据结构,其中每个元素包含一个指向下一个元素的指针。...

    LinkedList 所有公有方法和属性 导图

    .NET框架中的LinkList,实现的是双向链表,总结下它的实现源码。 LinkedList提供的公有属性和方法的导图

    LinkedList实现栈

    首先,LinkedList类位于Java的`java.util`包中,它实现了List接口,允许我们存储和操作一系列元素。LinkedList内部维护了一个双向链表,每个元素都是一个Node对象,包含元素值以及指向前后节点的引用。由于...

    Map+List+ArrayList+LinkedList Java源码

    List接口中的一些关键方法包括add(), remove(), get()以及迭代器的使用。常见的List实现类有ArrayList和LinkedList。 **ArrayList类** `ArrayList`是基于数组实现的List,它提供了一个动态增长的数组来存储元素。...

    ArrayList LinkedList Vector区别

    List 接口提供了一个 listIterator() 方法,返回一个 ListIterator 接口,和标准的 Iterator 接口相比,ListIterator 多了一些 add() 之类的方法,允许添加、删除、设定元素,还能向前或向后遍历。 LinkedList、...

    JAVA利用LinkedList构造栈与队列

    在本篇内容中,我们将探讨如何通过LinkedList实现栈和队列,以及它们在实际编程中的应用。 首先,栈是一种后进先出(LIFO,Last In First Out)的数据结构,常用于表达式求值、函数调用、回溯算法等场景。在...

    创建一个 LinkedList项目.docx

    由于实现了 List 接口和 Deque 接口,LinkedList 可以作为队列使用,如 `offer()`、`poll()`、`peek()` 等方法。 7. 双端队列操作: 作为 Deque,LinkedList 支持 `addFirst()`、`addLast()`、`offerFirst()`、`...

    LinkedList的用法

    在Java集合框架中,`LinkedList`类是一种基于链表实现的线性数据结构,继承自`AbstractSequentialList`抽象类,并实现了`List`接口与`Deque`接口。由于其内部是通过双向链表来存储元素,因此在元素的增删操作上具有...

    java基础--list(ArrayList、LinkedList、匿名类).docx

    ArrayList和LinkedList是List接口的两种主要实现,它们各有优缺点,适用于不同的场景。此外,匿名类的概念在Java中用于简化代码结构,尤其是在实现接口时。 1. **List接口** List接口继承自Set接口,它不仅提供了...

    比较ArrayList、LinkedList、Vector1

    List接口的实现类主要有ArrayList、LinkedList和Vector。 2. **ArrayList** - **实现原理**:ArrayList基于动态数组实现,它提供快速的按索引访问,因为数组支持直接通过索引获取元素。 - **添加和删除**:对于在...

    list集合案例增、删、改、查,ArrayList与LinkedList的区别,LinkedList堆栈/队列的开发

    本篇文章将深入探讨`List`集合的各种操作,包括增、删、改、查,以及`ArrayList`和`LinkedList`两种实现`List`接口的类之间的区别。同时,我们还将讨论如何利用`LinkedList`实现堆栈和队列的功能,并了解`List`集合...

    java中LinkedList任意排序实例

    在Java编程中,LinkedList是一个非常重要的数据结构,它实现了List接口,允许我们在列表的任何位置进行插入和删除操作。LinkedList内部使用双向链表实现,因此它的遍历速度比ArrayList快,但随机访问性能较差。本...

    Kotlin中Stack与LinkedList的实现方法示例

    接下来,我们讨论Kotlin中的LinkedList实现。LinkedList是一种线性数据结构,其中元素通过节点链接在一起。每个节点包含一个值和指向下一个节点的引用: ```kotlin class Node(value: T) { var value: T = value ...

    LinkedList 部分源码

    `LinkedList`是Java集合框架的一个重要组成部分,它基于双向链表实现,既支持`List`接口也实现了`Deque`接口,因此可以作为列表、栈或者队列使用。双向链表的每个节点包含一个数据元素以及前后两个指针,分别指向其...

    Go-LinkedList一个简单的双链表实现

    对于提供的压缩包文件"itsmontoya-linkedlist-1aa2446",我们可以通过查看源代码来深入了解上述功能的具体实现,包括节点结构、链表操作方法的内部逻辑以及可能的优化策略。源代码通常会包含详细的注释和示例,帮助...

Global site tag (gtag.js) - Google Analytics