- 浏览: 550640 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
-
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 1188import java.util.concurrent.Cal ... -
CountDownLatch
2012-07-24 11:00 1185concurrent包里面的CountDownLatch其实可 ... -
认识理解Java中native方法
2011-11-02 16:35 2372Java不是完美的,Java的不足除了体现在运行速度 ... -
java 数组复制:System.arrayCopy 深入解析
2011-11-02 10:02 4195转载:http://happyjin2010.it ... -
equals hashcode 深度分析
2011-07-14 13:17 11591.hashcode是用来查找的,如果你学过数据结构就应该知道 ... -
java proxy
2011-07-12 16:31 946代理?就是别人帮你管理叫代理. 举个例子 你是家里的主人, ... -
关于 JVM 命令行标志您不知道的 5 件事(来自IBM)
2010-11-29 17:10 973JVM 是多数开发人员视为理所当然的 Java 功能和性能背后 ... -
关于 Java Collections API 您不知道的 5 件事,第 1 部分(转自IBM)
2010-11-29 16:58 992对于很多 Java 开发人员 ... -
java线程安全总结(转载jameswxx)
2010-11-29 12:50 1381最近想将java基础的一些 ... -
说说new Integer和Integer.valueOf(转载jameswxx)
2010-11-29 12:23 1654看看这两个语句 Integer a=new Integer ... -
优化JVM参数提高eclipse运行速度
2010-11-26 16:13 894性能优化从身边做起。 首先建立评估体系,将workspac ... -
主题:一次Java垃圾收集调优实战
2010-11-26 15:29 11381 资料 •JDK5.0垃圾收集优化之--Don't Paus ... -
通过GC输出分析内存泄露问题
2010-11-26 15:13 1036SIP5.0以后服务的请求量爆发性增长,因此也暴露了原来没有暴 ... -
15种提高系统伸缩性和性能的最佳实践
2010-11-25 16:00 10021, 提高系统性能, 需要尽早做性能剖析, 而且要经常做.当项 ... -
JVM调优总结(一)-- 一些概念
2010-11-25 15:00 903数据类型 Java虚拟机中,数据类型可以分为两类:基本 ... -
DCL,双重检查(来自annegu)
2010-09-05 16:25 938对于多线程编程来说, ... -
JVM原理学习笔记一
2010-06-11 16:22 912最近在阅读 《Inside the J ... -
ImportDataFromMySQLToOracle
2009-12-10 10:42 1352import java.sql.Connection; im ... -
Merge two Hashtable<String, Integer>
2009-12-03 14:50 1385private static Hashtable< ...
相关推荐
本项目是关于“用链表实现集合并集”的C++课程设计,主要目的是掌握集合操作以及如何利用链表数据结构高效地实现这些操作。 首先,我们需要了解集合的基本概念。集合是一个无序且不包含重复元素的数学结构。在...
总的来说,C++中链表实现一元多项式的加法是一种巧妙而实用的方法,它结合了数据结构和算法的知识,展示了计算机科学的魅力。通过熟练掌握这样的编程技巧,不仅可以提高编程能力,还能为解决更复杂的问题打下坚实的...
综上所述,用链表实现STM32的多级菜单是一个涉及数据结构、内存管理、事件处理和用户界面设计等多个方面的综合性任务。通过熟练掌握这些知识点,我们可以创建出高效、易用且可扩展的嵌入式系统用户界面。
本项目以"用数据结构-链表实现通讯录管理系统"为主题,通过C语言实现了这一功能,旨在帮助用户管理他们的联系人信息。下面我们将深入探讨这个系统所涉及的主要知识点。 首先,我们来了解**链表**这一数据结构。链表...
链表实现集合运算 链表实现集合交并差运算
### 使用链表实现图书管理系统的知识点 #### 一、链表基本概念 链表是一种常见的数据结构,由一系列节点组成,每个节点包含实际存储的数据和一个指向下一个节点的引用(指针)。在本例中,链表用于实现图书管理系统...