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没有像C或C++那样的指针,但是通过对象引用,我们完全可以在Java中实现链表数据结构。这种实现方式不仅安全,而且易于理解和操作。通过链表,我们可以高效地处理动态数据集,执行插入、删除等操作,而无需...
用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。
JAVA实现链表_双向链表
### 面向对象的Java实现 在Java中,我们可以创建一个类`NODE`来表示链表节点,如下所示: ```java public class NODE { String info; NODE link; } ``` 并用一个`NODE`类型的变量`head`作为链表的头节点。 ### ...
### Java实现倒序链表 在本篇文章中,我们将探讨如何使用Java来实现一个倒序链表的功能。链表作为一种常见的数据结构,在计算机科学中有着广泛的应用,而倒序链表则是链表操作中的一项基本技能,对于理解链表的工作...
与数组不同,链表中的元素并不在内存中连续存储,而是通过节点间的引用(或称为指针)来连接。每个节点包含两部分:数据域,用于存储数据;和指针域,用于指向下一个节点的位置。这使得链表在处理动态数据集合时具有...
数据域存储实际的数据,而指针域指向链表中的下一个节点。在单链表中,我们只能向前遍历,因为每个节点只保存了指向其后继节点的引用。这使得插入和删除操作相对简单,但在查找某个特定元素时效率较低,因为它通常...
1. 链表的基本概念 ... 通过这个课程设计,学生不仅掌握了链表的基本概念,还深入了解了如何在 Java 中实现链表数据结构及其操作,增强了对数据结构和算法的理解,为实际软件开发打下了坚实的基础。
在Java中实现链表,通常会定义一个Node类来表示链表的节点,其中包含数据域和指向下一个节点的引用。接下来,会有一个LinkedList类,它包含对链表的操作方法。在这个项目中,这些方法可能包括: 1. 初始化链表:...
综上所述,文档中提到的Java实现链表的程序和处理BMP图像文件的代码片段,为我们提供了如何在不使用指针的高级语言中操作链表,以及如何在编程中处理图像文件的宝贵经验。通过这些内容的掌握,可以帮助我们更好地...
用Java定义一个双向链表,实现链表的基本操作: 初始化、获取头结点、添加新元素、删除链表元素、 获取链表元素、查找链表元素、更新链表中某个元素、 判断链表是否为空、求链表元素个数、输出链表元素、清空链表。
用Java定义一个循环链表,实现链表的基本操作: 初始化*、获取头结点、添加新元素*、删除链表元素 、获取链表元素*、查找链表元素*、更新链表中某个元素、 判断链表是否为空、求链表元素个数、输出链表元素、清空...
本教程将深入探讨如何在Java中实现链表以及查找链表中的元素。链表不同于数组,它不依赖于内存中的连续空间,而是通过节点间的引用连接形成线性序列。 1. **链表的基本概念** - **节点(Node)**: 链表由一系列...
本篇文章将深入探讨如何在Java中实现链表,特别是基于给定的`List`类实现的链表操作。 首先,链表的基本操作包括创建、插入、删除、遍历和查询。在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 SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现...