`
清春不二
  • 浏览: 16502 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java中如何实现链表

    博客分类:
  • java
阅读更多
java中就用类来实现链表结构,每个节点都是类似的,所以next就是类本身的对象。
下面是用链表来实现一个输入字符的功能
package MyFirstPackage;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MyLinkNote {

	public static void main(String[] args) {
		JFrame w=new JFrame();
		w.setSize(600,500);
		w.setLocationRelativeTo(null);
		
		MyLinkNotePanel mlnp=new MyLinkNotePanel();
		w.add(mlnp);
		w.addKeyListener(mlnp);
		mlnp.addKeyListener(mlnp);
		w.setVisible(true);
	}

}

class MyLinkNotePanel extends JPanel implements KeyListener{
	Node firstNode=new Node();
	Node nowNode=firstNode;
	int l=0;
	public void paint(Graphics g){
		super.paint(g);
		Node tmpNode=firstNode;
		int x=0;
		while(tmpNode.next!=null){
			g.drawString(new Character(tmpNode.next.value).toString(), 10+x*8, 15);
			tmpNode=tmpNode.next;
			x++;
		}
		g.drawLine(10+l*8, 5, 10+l*8, 15);
	}
	@Override
	public void keyTyped(KeyEvent e) {
		
	}

	@Override
	public void keyPressed(KeyEvent e) {
		int code=e.getKeyCode();
		if(code>=KeyEvent.VK_A && code<=KeyEvent.VK_Z){
			Node newNode=new Node();
			newNode.value=e.getKeyChar();
			
			if(nowNode.next!=null){//从中间插入字符的情况
				newNode.next=nowNode.next;
			}
			nowNode.next=newNode;
			nowNode=newNode;
			l++;
		}
		
		if(code==KeyEvent.VK_LEFT){//向左移动光标
			if(l>0){
				l--;
				Node tmNode=firstNode;
				while(tmNode.next!=nowNode){
					tmNode=tmNode.next;
				}
				nowNode=tmNode;
			}
		}
		if(code==KeyEvent.VK_RIGHT){//向右移动光标
			if(nowNode.next!=null){
				l++;
				nowNode=nowNode.next;
			}
		}
		
		
		repaint();
	}

	@Override
	public void keyReleased(KeyEvent e) {
		
	}
	
}

class Node{
	public char value=' ';
	public Node next=null;
}

}


分享到:
评论

相关推荐

    java实现链表操作

    用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。

    JAVA实现链表_双向链表

    JAVA实现链表_双向链表

    java实现链表.pdf

    ### 面向对象的Java实现 在Java中,我们可以创建一个类`NODE`来表示链表节点,如下所示: ```java public class NODE { String info; NODE link; } ``` 并用一个`NODE`类型的变量`head`作为链表的头节点。 ### ...

    java 实现倒序链表

    ### Java实现倒序链表 在本篇文章中,我们将探讨如何使用Java来实现一个倒序链表的功能。链表作为一种常见的数据结构,在计算机科学中有着广泛的应用,而倒序链表则是链表操作中的一项基本技能,对于理解链表的工作...

    java 数据结构 链表

    与数组不同,链表中的元素并不在内存中连续存储,而是通过节点间的引用(或称为指针)来连接。每个节点包含两部分:数据域,用于存储数据;和指针域,用于指向下一个节点的位置。这使得链表在处理动态数据集合时具有...

    单链表双向链表java实现

    数据域存储实际的数据,而指针域指向链表中的下一个节点。在单链表中,我们只能向前遍历,因为每个节点只保存了指向其后继节点的引用。这使得插入和删除操作相对简单,但在查找某个特定元素时效率较低,因为它通常...

    基于java的模拟链表设计

    1. 链表的基本概念 ... 通过这个课程设计,学生不仅掌握了链表的基本概念,还深入了解了如何在 Java 中实现链表数据结构及其操作,增强了对数据结构和算法的理解,为实际软件开发打下了坚实的基础。

    链表演示程序(数据结构课程设计)

    在Java中实现链表,通常会定义一个Node类来表示链表的节点,其中包含数据域和指向下一个节点的引用。接下来,会有一个LinkedList类,它包含对链表的操作方法。在这个项目中,这些方法可能包括: 1. 初始化链表:...

    如何基于Java实现数据结构链表相关程序.pdf

    综上所述,文档中提到的Java实现链表的程序和处理BMP图像文件的代码片段,为我们提供了如何在不使用指针的高级语言中操作链表,以及如何在编程中处理图像文件的宝贵经验。通过这些内容的掌握,可以帮助我们更好地...

    Java实现双向链表

    用Java定义一个双向链表,实现链表的基本操作: 初始化、获取头结点、添加新元素、删除链表元素、 获取链表元素、查找链表元素、更新链表中某个元素、 判断链表是否为空、求链表元素个数、输出链表元素、清空链表。

    Java实现循环链表

    用Java定义一个循环链表,实现链表的基本操作: 初始化*、获取头结点、添加新元素*、删除链表元素 、获取链表元素*、查找链表元素*、更新链表中某个元素、 判断链表是否为空、求链表元素个数、输出链表元素、清空...

    Java 实例 - 链表元素查找源代码-详细教程.zip

    本教程将深入探讨如何在Java中实现链表以及查找链表中的元素。链表不同于数组,它不依赖于内存中的连续空间,而是通过节点间的引用连接形成线性序列。 1. **链表的基本概念** - **节点(Node)**: 链表由一系列...

    关于java中链表的用法

    本篇文章将深入探讨如何在Java中实现链表,特别是基于给定的`List`类实现的链表操作。 首先,链表的基本操作包括创建、插入、删除、遍历和查询。在Java中,尽管没有直接提供指针的概念,但可以通过对象引用模拟指针...

    数据结构(java)实现链表

    数据结构,用Java实现链表 private class Node { private String data; private Node next; public Node(String dataPortioin) { data = dataPortioin; next = null; } public Node(String ...

    java编写的循环链表来实现约瑟夫环

    循环链表 实现约瑟夫环 java 自己写的 测试通过 有注释

    java 单链表和双向链表的实现

    本话题主要探讨两种常用的数据结构——单链表和双向链表在Java中的实现,以及相关的操作,如在头部添加节点、在尾部添加节点、遍历、逆置和删除。 首先,我们来理解单链表和双向链表的基本概念。单链表是一种线性...

    自行使用Java数组实现链表数据结构

    本篇文章将深入探讨如何使用Java数组来模拟实现链表数据结构,以此来增强对链表理解的同时,也能看到数组在特殊场景下的运用。 链表是由一系列节点(或称为元素)组成的线性数据结构,每个节点包含数据和指向下一个...

    Java SE程序 类实现单向链表

    Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现...

Global site tag (gtag.js) - Google Analytics