日期:2014-05-20  浏览次数:20767 次

可视化实现单链表插入,删除,查找
可视化实现单链表插入,删除,查找 。可以使用JAVA/C++

------解决方案--------------------
package lianbiao;
import javax.swing.*;
import javax.xml.soap.Node;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
public class yingyong extends JFrame implements ActionListener
{
chain nChain=new chain();
JButton jb11,jbl2,jbl3,jbl4,jbl5,jbl6;
JTextField jTextField1,jTextField2,jTextField3,jTextField4,jTextField5,jTextField6;
JButton button1,button2,button3,button4,button5,button6;
JPanel panel;
JLabel jLabel;
yingyong(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//jb11=new JButton("存入的数据的个数");

//jbl2=new JButton("数据");
jbl3=new JButton("插入位置");
jbl4=new JButton("插入数据");
jbl4.addActionListener(this);
jbl5=new JButton("删除数据的位置");
jbl5.addActionListener(this);
jbl6=new JButton("搜索数据");
jbl6.addActionListener(this);
// jTextField1=new JTextField();jTextField1.setColumns(10);
//jTextField2=new JTextField();jTextField2.setColumns(10);
jTextField3=new JTextField();jTextField3.setColumns(10);
jTextField4=new JTextField();jTextField4.setColumns(10);
jTextField5=new JTextField();jTextField5.setColumns(10);
jTextField6=new JTextField();jTextField6.setColumns(10);
jLabel=new JLabel();
//jTextField1=new JTextField();jTextField1.setColumns(10);

panel=new JPanel();
// panel.add(jb11); panel.add(jTextField1);
//panel.add(jbl2); panel.add(jTextField2);
panel.add(jbl3); panel.add(jTextField3);
panel.add(jbl4); panel.add(jTextField4);
panel.add(jbl5); panel.add(jTextField5);
panel.add(jbl6); panel.add(jTextField6);

button1=new JButton("显示结果");button1.addActionListener(this);
panel.add(button1);
panel.add(jLabel);
panel.setLayout(new GridLayout(5,2));

add(panel);
setSize(500,500);
setVisible(true);


}


public void actionPerformed(ActionEvent e) {
if /*(e.getSource()==button1) {
String string=JOptionPane.showInputDialog("输入添加的数");
int i1=Integer.parseInt(string);
nChain.add(i1);
}
else if*/(e.getSource()==jbl4){
//node n=new node((int)Integer.parseInt(jTextField4.getText().trim()));
try{
int i2=(int)Integer.parseInt(jTextField4.getText().trim());
int j1=(int)Integer.parseInt(jTextField3.getText().trim());

nChain.add(i2,j1);
}catch(NullPointerException e1){
JOptionPane.showMessageDialog(this,"请输入正确位置");
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(this,"请输入数字");
}

//System.out.print(nChain.toString());
jLabel.setText(nChain.toString());
}
else if (e.getSource()==jbl5){
try{
int i3=(int)Integer.parseInt(jTextField5.getText().trim());
nChain.del(i3);
}catch(NullPointerException e1){
JOptionPane.showMessageDialog(this,"请输入正确位置");
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(this,"请输入数字");
}
jLabel.setText(nChain.toString());
}
else if(e.getSource()==jbl6){
try{
int i=(int)Integer.parseInt(jTextField6.getText().trim());
int j2=nChain.search(i); 
if(j2==-1)
JOptionPane.showMessageDialog(this,"没有找到该数据");
else 
JOptionPane.showMessageDialog(this,"该数据的位置为"+j2);
}
catch(NumberFormatException e1){