java中实现链表(转)

分析:
上述节点具备如下特征:
1、 每个节点由两部分组成(存储信息的字段,存储指向下一个节点的指针) 2、 节点之间有着严格的先后顺序。
3、 单链表节点是一种非线性的结构,在内存中不连续分配空间。
设计:
设计节点

设计涉及到算法: 初始化单链表:
1、 提供一个init方法,用来加载链表数据 2、 实现链表的链接。
具体代码如下:
public class Linker {
public NODE head;
//define the initial function to init the single linker!
public void init(char v_char[]) {
NODE ptr
NODE p = new NODE();
head = p;
for(int i = 0; i < v_char.length;i++)
{
ptr = new NODE();
ptr.info = v_char[i];
p.link = ptr;
ptr.link = null;
p = ptr;
}
}
//define search in linker
public boolean searchinlinker(char ch) {
boolean flag = false; NODE ptr;
ptr = head.link; while( ptr != null) {
if(ch == ptr.info) {
flag = true;
break;
}
else {
ptr = ptr.link; }
return flag;
}
//define the insert fuction
public void insertintolinker(char pos,char ch) {
NODE ptr;
NODE p;
ptr = head.link;
while( ptr != null)
{
if(pos == ptr.info) {
//实现数据插入 p = new NODE(); p.info = ch; p.link = ptr.link; ptr.link = p; break;
} else {
ptr = ptr.link; }
}
//defin the delete function
public void deletefromlinker(char ch)
{ NODE ptr; NODE p;
ptr = head.link; p = head;
while( ptr != null) {
if(ch == ptr.info) {
//实现数据删除
p.link = ptr.link;
System.gc(); break;
} else
{ p = ptr;
ptr = ptr.link; }
}
}
//defin the print linker public void printlinker() { NODE ptr;
ptr = head.link; while (ptr != null) {
System.out.print(" " + ptr.info + "->"); ptr = ptr.link; }
System.out.println("null");
}
}
java中实现链表(转)的更多相关文章
- Java中的链表数据结构
首先,我们来定义一个链表的数据结构,如下: 1 public class Link { 2 private int value; 3 private Link next; 4 public void ...
- java中的链表编写
通过while循环取出节点内容 class Node{//定义一个节点类,用于保存数据和取得下一个节点 private String data;//节点中数据 private Node next;// ...
- Java中LinkedList的remove方法真的耗时O(1)吗?
这个问题其实来源于Leetcode的一道题目,也就是上一篇日志 LRU Cache.在使用LinkedList超时后,换成ArrayList居然AC了,而问题居然是在于List.remove(Obje ...
- java算法01 - 链表
1.链表 在Java中实现链表,每个节点都有一个值,然后把它链接到下一个节点.下面来看一下节点的实现 class Node<E> { private E e; private Node&l ...
- Java中的List集合和迭代器
一.Java中的List集合. 终于有时间来好好整理一下Java中的集合. 首先要讲的就是List集合.Java中List集合主要将两个: 第一个是底层使用数组维护的ArrayList,第二个是底层是 ...
- java中如何使用列表数组
java中如何使用列表数组 觉得有用的话,欢迎一起讨论相互学习~Follow Me 转载链接 https://blog.csdn.net/hgtjcxy/article/details/8183519 ...
- 面试大总结:Java搞定面试中的链表题目总结
package LinkedListSummary; import java.util.HashMap; import java.util.Stack; /** * http://blog.csdn. ...
- java中的集合链表
java中的集合类有很多种,每个都有自己的一些特点,推荐你专门在这方面研究一下,比方Vector,ArrayList,,LinkedList,Hashtable等,其中你问到的链表,是不是指Linke ...
- (转)面试大总结之一:Java搞定面试中的链表题目
面试大总结之一:Java搞定面试中的链表题目 分类: Algorithm Interview2013-11-16 05:53 11628人阅读 评论(40) 收藏 举报 链表是面试中常出现的一类题目, ...
随机推荐
- CPinyin unicode汉字查找拼音(支持多音字)
下载代码 --------------------------------------------------------------------------------- 虽然很笨的办法,却非常有效 ...
- linux(Ubuntu)安装QQ2013
首先简述自己的系统配置:win7+ ubuntu12.04 linuxQQ 有各种版本,这里介绍两种:linuxQQ 和 wineQQ 1 ------linuxqq是QQ简化版,功能很少,界面很差, ...
- Java的switch用法
下面是switch的用法: var status = msg; switch (status) //status是表达式 { case 0:st ...
- win7下IIS安装与配置运行网站
1.打开控制面板,点击程序和功能: 2.点击打开或关闭Windows功能进行安装: 3.等待进入安装界面,需要几十秒左右: 4.找到Internet信息服务,将Web管理工具和万维网服务所有勾上,然后 ...
- java基础知识回顾之java Thread类学习(十二)-- 线程中断
官方文档翻译: 如果本线程是处于阻塞状态:调用线程的wait(), wait(long)或wait(long, int)会让它进入等待(阻塞)状态,或者调用线程的join(), join(long), ...
- jquery笔记(仅供个人参考)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- vijos p1002 dp ***
链接:点我 一开始的方程式很好写的,但是数据太大,考虑到石子数目很小,我们对其进行离散化,若相邻两点距离超过ya的值,则后面所有点都往前移动,这里ya的值是可以调整的 #include <ios ...
- loj 1055(bfs)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26772 思路:注意判重就行,开个6维数组记录3个robots的位置 ...
- cocos2dx游戏开发——微信打飞机学习笔记(八)——EnemyLayer的搭建
一.创建文件= = EnemyLayer.h EnemyLayer.cpp Ps:我绝对不是在凑字数~. 二.How to do? (1)一些宏 ...
- 关于flume中的几个疑惑
文章发自http://www.cnblogs.com/hark0623/p/4205756.html 转载请注明 flume越用越有一些疑惑,这个月中按计划是要阅读flume源码的,我希望能解决我的 ...