首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

可视化实现单链表插入,删除,查找解决思路

2012-03-09 
可视化实现单链表插入,删除,查找可视化实现单链表插入,删除,查找 。可以使用JAVA/C++[解决办法]package lia

可视化实现单链表插入,删除,查找
可视化实现单链表插入,删除,查找 。可以使用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){


JOptionPane.showMessageDialog(this,"请输入数字");
}
jLabel.setText(nChain.toString());}
}
}
package lianbiao;

import java.util.Random;

import javax.xml.crypto.Data;

public class chain {
private node first;
public chain(){
first=null;
}

//产生链表
public void duoci(int i){
Random r=new Random();
for(int n=0;n<i;n++){
int j=r.nextInt(100)+1;
this.add(j);
}
}
public void add(int data){
node n=new node(data);
node current;
if(first==null)
first=n;
else{
current=first;
while(current.next!=null)
current=current.next;
current.next=n;
}
System.out.println("插入数据"+data+" ");
}

//插入
public void add(int data,int j){
node p=new node(0);
node q=new node(data);
p=first;
for(int i=1;i<j;i++)
p=p.next;
if(j!=0){
q.next=p.next;
p.next=q;
}else {
q.next=first;
first=q;
}
}

//删除
public void del(int j){
node p=new node(0);
p=first;
if(j==0){
first=first.next;
}else{
for(int i=1;i<j;i++)
p=p.next;
p.next=p.next.next;
}
}

//搜索
public int search(int data){
int j=0;
node p=new node(0);
p=first;
while(p!=null&&p.data!=data){
p=p.next;
j++;
}
if(p==null){
return -1;
}
else {
return j;
}

}
public String toString(){
String result="";
node current=first;
while(current!=null){
result+=current.data+" ";
current=current.next;
}
return result;
}
}
[解决办法]
接着的
package lianbiao;

class node {
public int data;
public node next;
public node(int a)
{
data=a;
next=null;

}

}
 package lianbiao;

import java.util.Scanner;

import javax.swing.JOptionPane;

public class ceshi {
public static void main(String args[]){
new yingyong();
}

}

热点排行