package com.tw.dst.link;
/**
* <p>链表学习(二):双端链表</p>
* @author tangw 2010-12-07
*
*/
public class FirstLastLink {
private Link first; //第一个链表引用
private Link last; //最后一个链表引用
//判断是否为空
public boolean isEmpty(){
return (first==null);
}
//在表前插入一个链结点
public void insertFirst(int id,double dd){
Link newLink = new Link(id,dd);
if(this.isEmpty()){
last = newLink;
}
newLink.next = first;
first = newLink;
}
//在表尾插入一个链结点
public void insertLast(int id,double dd){
Link newLink = new Link(id,dd);
if(this.isEmpty()){
first = newLink;
}
last.next = newLink;
last = newLink;
}
//删除第一个链结点
public Link deleteFirst(){
Link temp = first;
if(first == null){
last = null;
}
first = first.next;
return temp;
}
//输出链表数据
public void displayList(){
System.out.println("list (first-->last)");
Link current = first;
while(current!=null){
current.displayLink();
current =current.next;
}
System.out.println("");
}
/**
* @param args
*/
public static void main(String[] args) {
//----1---插入
FirstLastLink linkList = new FirstLastLink();
linkList.insertFirst(22, 2.99);
linkList.insertFirst(44, 4.99);
linkList.insertFirst(66, 6.99);
linkList.displayList();
//---2---删除
Link aLink = linkList.deleteFirst();
linkList.displayList();
}
}
分享到:
相关推荐
双端栈(Double-Ended Stack,简称DES)是栈数据结构的一种扩展,它允许在栈的两端进行入栈和出栈操作。...通过学习和掌握双端栈,你不仅可以提升自己的算法能力,还能在解决实际问题时有更多的工具选择。
在计算机科学中,栈常用于各种算法和程序设计中,如表达式求值、递归、深度优先搜索等。栈的两种常见实现方式是数组和链表,各有优缺点。 数组实现的栈: 1. **优点**:数组实现的栈空间连续,访问效率高,因为内存...
在Python中,虽然内置的`list`类型已经提供了很多便利,但理解链表的概念及其工作原理对于深入学习算法和数据结构是至关重要的。 链表与数组不同,数组在内存中是连续存储的,而链表的每个元素(节点)包含数据和...
总的来说,这个C++数据结构算法集提供了对基本数据结构和算法的实现,包括堆栈、队列和链表,这对于学习和理解数据结构及其在实际编程中的应用非常有帮助。掌握这些基础知识将有助于提升编程能力,解决更复杂的问题...
6. **链表的应用**:链表广泛用于各种数据结构,如栈(通过头插法实现)、队列(通过双端操作实现)、哈希表(作为桶的实现)以及二叉树(如AVL树和红黑树)等。 7. **链表的复杂度分析**:链表的基本操作(如插入...
队列是一种先进先出(FIFO)的数据结构,适用于任务调度、缓冲区管理,可以用数组或链表实现双端队列。 在C语言中,树结构如二叉搜索树(BST)可以用来快速查找、插入和删除数据。AVL树是一种自平衡的二叉搜索树,...
在C++中,STL(Standard Template Library,标准模板库)提供了对这些数据结构的实现,如vector(动态数组)、list(双向链表)、deque(双端队列)、stack(栈)、queue(队列)等。学习如何使用STL容器和迭代器...
Python语言因其简洁易懂的语法,成为初学者和专业人士学习算法和数据结构的首选工具。在这个“数据结构与算法-课件-代码-Python语言描述”的压缩包中,包含了丰富的教学资源,旨在帮助学习者深入理解这些核心概念。 ...
此外,链表在解决某些特定问题时非常有用,如哈希表(使用链表解决冲突)、图形算法(邻接表表示图的节点连接)等。了解并熟练掌握链表的原理和操作,对于提升Java编程能力和解决复杂问题的能力至关重要。 总结来说...
在给定的“各种形式的链表源码”压缩包中,重点是单链表、循环链表、双端链表的实现,以及可能使用数组或特定数据结构实现的链表变体。下面将详细介绍这些链表类型及其相关知识点。 **单链表**是最简单的一种链表...
在C++中,标准模板库(STL)提供了对多种数据结构的支持,如vector(动态数组)、list(双向链表)、deque(双端队列)、set(红黑树实现的集合)、map(红黑树实现的键值对集合)等。STL还包含了一些常用的算法,如...
本文将结合个人学习心得,深入探讨Java链表的核心概念、实现方式以及与其他编程语言的互通性。 首先,链表是一种线性数据结构,与数组不同,它的元素在内存中不是连续存储的。每个元素(称为节点)包含两部分:数据...
队列则可以使用双端链表,允许在两端进行入队和出队操作。 链表的性能特点需要注意,由于元素不是连续存储,随机访问(如通过索引访问)效率较低,通常需要O(n)的时间复杂度。但在插入和删除操作上,链表通常比数组...
### 算法学习资源 - **《瓶子君的算法小书》**:这本书为前端工程师提供了数据结构与算法的学习指南,旨在帮助读者从零构建完整的数据结构与算法体系。 - **前端编程算法集训营**:提供了免费的学习机会,学员可以...
知识点涵盖了从基础的数据结构(如数组、链表、栈、队列)到更高级的概念(如设计模式、算法的渐近分析),还包括了如何将这些理论应用到实际编程实践中。通过本文件提供的内容,读者可以深入了解数据结构与算法的...
本资料包“链表-使用Python基于链表实现的多种队列数据结构比较”着重探讨了如何利用Python语言来实现不同类型的队列数据结构,其中队列是一种先进先出(FIFO)的数据结构,常用于任务调度、缓冲区管理和多线程通信...
全国计算机等级考试二级C语言公共基础知识点主要涵盖算法、数据结构、线性表、链表、栈和队列以及树与二叉树等核心概念。 1. **算法**: - 算法是解题的完整描述,它不等于程序,但程序的编制依赖于算法设计。 - ...