- 浏览: 546291 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
wa114d:
楼主工作几年了,好厉害
一个面试官对面试问题的分析 -
wobuxiaole:
Good,非常好
30岁前男人需要完成的事 -
小逗逗:
Good,非常好
30岁前男人需要完成的事 -
invincibleLiu:
好帖,要顶!(别投我隐藏啊,这是对BBS最原始一种支持)
Java:synchronized修饰符在静态方法与非静态方法上的区别 -
fayedShih:
第三题,不知道对不对
import java.util.con ...
企业牛逼面试题目 高手进来讨论答题
/** * */ package link; /** * @author sunxboy * */ public class Node { /** * 链表结构的特征: * 分二部分: * 第一部分为数据 * 第二部分为地址,它指下一个节点 */ public int data; public Node next; public Node(int data) { this.data=data; } }
/** * 数据结构之链表 */ package link; /** * @author sunxboy * */ public class LinkTable { private Node head; /** * 在链表的最前面插入一个值 * @param data 要插的数据 * @return 是否成功 */ public boolean insertFirst(int data) { Node node= new Node(data); if(isEmpty()) { head = node; return true; } //将新插入的数的地址指向原来的第一位数 node.next = head; //更新插入值后的新链表的头 head = node; return true; } /** * 在链表的最末插入一个值 * @param data 要插入的数据 * @return 是否成功 */ public boolean insertLast(int data) { Node node = new Node(data); if(isEmpty()) { node = head; return true; } Node p = head; Node pre = head; //遍历整个链表,从而最终得到一个最后的节点 while(!isEnd(p)) { // 在向后移动之前得到一个节点 pre = p; // 逐次向后移动 p = p.next; } // 将要插入的值插入到最后一个节点上 pre.next = node; return false; } /** * 在某节点前插入一新数据 * @param oldData 原节点 * @param newData 新节点 * @return 是否插入成功 */ public boolean insert(int oldData,int newData) { Node preNode = find(oldData,true); if(preNode==null) { return false; } Node newNode = new Node(newData); if(preNode==head) { newNode.next=head; head = newNode; } else { Node pNode = preNode.next; newNode.next=pNode; preNode.next=newNode; } return true; } /** * 删除某一节点 * @param data 节点数据 * @return 是否删除成功 */ public boolean delete(int data) { if(isEmpty()) { return false; } Node preNode = find(data, true); if(preNode == head) { head = head.next; }else { Node pNode = preNode.next; preNode.next=pNode.next; } return true; } /** * 将某节点数据更新为新的数据 * @param oldData * @param newData * @return */ public boolean update(int oldData,int newData) { Node pNode = find(oldData, false); if(pNode!=null) { pNode.data = newData; return true; } return false; } /** * 查找数值为data的节点 * @param flag 为false时表示返回要找数据的节点, * 为true时表示返回要找数据之前的节点 * @param data 要查找的数值 * @return */ public Node find(int data,boolean flag) { Node p = head; Node pre = head; while(!isEnd(p)&& p.data!= data) { // 保存之前的信息 pre = p; //逐次向后移动 p = p.next; } if(isEnd(p)) { return null; } if(flag) return pre; else return p; } /** * 链表是否为空 * @return */ public boolean isEmpty() { return head==null; } /** * 此节点是否是最后一个节点 * @param node 要判断的节点 * @return 是否是最后一个节点 */ public boolean isEnd(Node node) { return node==null; } /** * 显示链表所有节点信息 * */ public void display() { Node pNode = head; while(pNode!=null) { System.out.println(pNode.data); pNode = pNode.next; } } public static void main(String[] args) { LinkTable lt=new LinkTable(); lt.insertFirst(1); lt.insertFirst(2); lt.insertFirst(3); lt.insertLast(4); lt.insertLast(5); lt.insertLast(6); lt.insert(4, -2); lt.delete(6); lt.delete(3); lt.delete(4); lt.update(1, 100000); lt.display(); } }
发表评论
-
ConcurrentHashMap在jdk1.7和jdk1.8中的不同
2021-12-02 17:30 0https://blog.csdn.net/qq_418849 ... -
CallableAndFuture
2012-07-24 11:31 1174import java.util.concurrent.Cal ... -
CountDownLatch
2012-07-24 11:00 1175concurrent包里面的CountDownLatch其实可 ... -
认识理解Java中native方法
2011-11-02 16:35 2358Java不是完美的,Java的不足除了体现在运行速度 ... -
java 数组复制:System.arrayCopy 深入解析
2011-11-02 10:02 4168转载:http://happyjin2010.it ... -
equals hashcode 深度分析
2011-07-14 13:17 11461.hashcode是用来查找的,如果你学过数据结构就应该知道 ... -
java proxy
2011-07-12 16:31 938代理?就是别人帮你管理叫代理. 举个例子 你是家里的主人, ... -
关于 JVM 命令行标志您不知道的 5 件事(来自IBM)
2010-11-29 17:10 965JVM 是多数开发人员视为理所当然的 Java 功能和性能背后 ... -
关于 Java Collections API 您不知道的 5 件事,第 1 部分(转自IBM)
2010-11-29 16:58 983对于很多 Java 开发人员 ... -
java线程安全总结(转载jameswxx)
2010-11-29 12:50 1365最近想将java基础的一些 ... -
说说new Integer和Integer.valueOf(转载jameswxx)
2010-11-29 12:23 1640看看这两个语句 Integer a=new Integer ... -
优化JVM参数提高eclipse运行速度
2010-11-26 16:13 883性能优化从身边做起。 首先建立评估体系,将workspac ... -
主题:一次Java垃圾收集调优实战
2010-11-26 15:29 11271 资料 •JDK5.0垃圾收集优化之--Don't Paus ... -
通过GC输出分析内存泄露问题
2010-11-26 15:13 1023SIP5.0以后服务的请求量爆发性增长,因此也暴露了原来没有暴 ... -
15种提高系统伸缩性和性能的最佳实践
2010-11-25 16:00 9931, 提高系统性能, 需要尽早做性能剖析, 而且要经常做.当项 ... -
JVM调优总结(一)-- 一些概念
2010-11-25 15:00 891数据类型 Java虚拟机中,数据类型可以分为两类:基本 ... -
DCL,双重检查(来自annegu)
2010-09-05 16:25 927对于多线程编程来说, ... -
JVM原理学习笔记一
2010-06-11 16:22 905最近在阅读 《Inside the J ... -
ImportDataFromMySQLToOracle
2009-12-10 10:42 1342import java.sql.Connection; im ... -
Merge two Hashtable<String, Integer>
2009-12-03 14:50 1361private static Hashtable< ...
相关推荐
本项目是关于“用链表实现集合并集”的C++课程设计,主要目的是掌握集合操作以及如何利用链表数据结构高效地实现这些操作。 首先,我们需要了解集合的基本概念。集合是一个无序且不包含重复元素的数学结构。在...
总的来说,C++中链表实现一元多项式的加法是一种巧妙而实用的方法,它结合了数据结构和算法的知识,展示了计算机科学的魅力。通过熟练掌握这样的编程技巧,不仅可以提高编程能力,还能为解决更复杂的问题打下坚实的...
综上所述,用链表实现STM32的多级菜单是一个涉及数据结构、内存管理、事件处理和用户界面设计等多个方面的综合性任务。通过熟练掌握这些知识点,我们可以创建出高效、易用且可扩展的嵌入式系统用户界面。
本项目以"用数据结构-链表实现通讯录管理系统"为主题,通过C语言实现了这一功能,旨在帮助用户管理他们的联系人信息。下面我们将深入探讨这个系统所涉及的主要知识点。 首先,我们来了解**链表**这一数据结构。链表...
链表实现集合运算 链表实现集合交并差运算
### 使用链表实现图书管理系统的知识点 #### 一、链表基本概念 链表是一种常见的数据结构,由一系列节点组成,每个节点包含实际存储的数据和一个指向下一个节点的引用(指针)。在本例中,链表用于实现图书管理系统...
链表实现线性表的基本操作包括添加元素(插入)、删除元素、查找元素以及遍历等。在`ChainList.java`文件中,可能会定义一个名为`Node`的类来表示链表节点,如下所示: ```java class Node { int data; Node next...
### 题目:C语言链表实现学生信息管理 #### 描述: 这是一个用C语言编写的简单程序,通过链表技术实现了学生信息的管理功能。用户可以通过简单的命令行界面执行各种操作,如添加、删除、修改、查询学生信息以及保存...
《C语言学生考试系统——链表实现》 在信息技术领域,C语言作为一种基础且强大的编程语言,被广泛用于系统编程、软件开发以及教学实训。本项目“C语言学生考试系统”便是利用C语言来实现的一个简易考试管理工具,其...
本文将深入探讨Go语言中的双链表实现,以标题"Go-LinkedList一个简单的双链表实现"为例,我们将分析双链表的设计、操作以及其在实际应用中的价值。 双链表是一种线性数据结构,每个节点包含两个指针,分别指向前后...
在"delimetermach.cpp"这个源代码文件中,很可能包含了具体的链表实现栈和队列的C++代码。通过阅读和分析这段代码,我们可以深入理解如何使用C++的指针和结构体来构建链表节点,以及如何通过指针操作来实现栈的压栈...
大学期间用C语言链表实现的一个图书管理系统,主要功能有 a. 设备申请。由专业人员填写“申请表”送交领导批准购买。 b. 设备入库。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、...
《航空订票系统--链表实现》 在IT行业中,航空订票系统是航空公司和旅行代理机构的关键组成部分,它负责管理航班信息、座位预订、乘客信息等重要数据。本项目着重探讨了如何利用链表这一数据结构来实现航空订票系统...
通用链表实现是解决这个问题的一种高效方法,它能够处理任意长度的整数,不受固定大小数据类型的限制。本篇文章将深入探讨如何利用链表结构来实现大数相乘,并分析其工作原理和优化策略。 首先,链表是一种动态数据...
5. **优缺点**:链表实现队列时,入队和出队操作通常较快,因为无需移动其他元素。但相比于数组,链表的随机访问性能较差,因为需要遍历找到特定位置的节点。 **对比与选择** 数组和链表实现队列各有优势,具体...
总结,C#版的双向链表实现涉及到泛型、接口和类设计等多个核心编程概念。通过这些工具,我们可以创建一个灵活、高效且可复用的数据结构,以满足各种程序需求。在实际开发中,理解和掌握这些概念对于提升代码质量至关...
在链表实现中,可以考虑结合这两种方法,为不同的查询场景提供优化。 密码退格功能是指用户在输入密码时能撤销最近一次输入的操作。在链表实现中,可以维护一个额外的链表,用于存储用户的输入历史,每次退格操作就...
C语言链表实现单词本管理 本文档主要介绍了使用C语言实现单词本管理系统的设计和实现过程。该系统使用链表结构来存储单词及其对应的中文解释,并提供了插入、删除、查找和输出单词的功能。 1. 链表结构的实现 在...
总的来说,用链表实现多项式运算是一种灵活且高效的方法,它可以方便地处理任意大小的多项式,并支持各种算术操作。链表的动态特性使得这种实现方式具有很高的可扩展性,可以适应不同的问题需求。
本文将深入探讨一种利用链表实现长整型相乘的算法。 链表是一种线性数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的引用。这种数据结构特别适合存储动态增长的序列,因为可以在运行时轻松添加或...