用java实现一个数据结构!

发布网友

我来回答

2个回答

热心网友

import java.io.IOException;
import java.util.Scanner;

public class LinkList {
private static Scanner san = new Scanner(System.in);

public static void main(String[] args) throws IOException {
List list = new List();
for (int i = 1; i <= 10; i++) {
System.out.print("请输入第" + i + "个数: ");
list.add(san.nextInt());
list.print();
}
System.out.println("输入的数据如下: ");
list.print();
}
}

class node {
int data;
node next = this; // 指向自己
}

class List {
private node header = new node();

// 循环链表的尾部添加数据
public node add(int data) {
node current = new node();
node temp = header;
while (temp.next != header)
temp = temp.next;
current.data = data;
current.next = temp.next;
temp.next = current;
return current;
}

// 查询某个数字的位置 如果不在 返回-1;
public int search(int data) {
node temp = header;

int n = 0;
while (temp.next != header) {
temp = temp.next;
n++;
if (temp.data == data)
break;
}
if (temp.data == data)
return n;
else
return -1;
}

// 打印出整个链表
public void print() {
node temp = header;
while (temp.next != header) {

temp = temp.next;
System.out.print(temp.data + " ");
}
System.out.println();
}

// 插入数据
public node Insert(int pos, int data) {
node temp = header;
node current = new node();
for (int i = 0; i < pos - 1; i++) {
if (temp.next != header) {
temp = temp.next;
} else
return null;
}
current.data = data;
if (temp.next != header) {
current.next = temp.next;
}
temp.next = current;
return current;
}

// 删除某个数据
public node del(int data) {
node temp = header;
node oldtemp = null;
node current = null;
while (temp.next != header) {
oldtemp = temp;
temp = temp.next;
if (temp.data == data) {
current = temp;
break;
}
}
if (current == header)
return null;
oldtemp.next = current.next;
return current;
}
}

热心网友

http://blog.csdn.net/shmilyhe/archive/2009/09/09/4533780.aspx
这是我写的单向链表

参考资料:http://blog.csdn.net/shmilyhe/archive/2009/09/09/4533780.aspx

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com