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 数据结构 链表 自己写的 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 SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现...
链表 链表_使用JAVA语言实现链表数据结构
这是一个单向链表,它具有插入与删除节点的功能。Entry类实现了链表的各节点。
用java实现双向链表的完整操作,主要用到内部类实现。
用java链表实现了两个多项式的相加、相乘,最后得到最终结果以链表形式输出
约瑟夫问题,通过类实现的链表,并加以改进,做成双向链表
JAVA链表实现类(数据结构学习).chm
java数组和链表底层-链表的底层原理和实现 数组和链表.pdf
用链表实现线性表java用链表实现线性表
此程序用java实现链表,很实用,word形式,有说明
很好的,这是一个关于算法的问题,通常的都是用c实现的,但面向对象的java也可以解决这个问提。
java代码实现链表创建及链表反转