现在的位置: 首页 > 综合 > 正文

数据结构

2018年04月14日 ⁄ 综合 ⁄ 共 1748字 ⁄ 字号 评论关闭

        一般将数据结构分为两大类:纯性数据结构和非线性数据结构。纯性数据结构有线性表、栈、队列、串、数组和文件;非线性数据结构有树和图(子类、继承等)。


       结性表按其存储结构可分为顺序表和链表。用顺序存储结构存储的线性表称为顺序表;用链式存储结构存储的线性表称为链表。


       将线性表中的数据元素依次存放在某个存储区域中,所形成的表称为顺序表。一维数组就是用顺序方式存储的线性表。


链表又分为:单向链表和双方链表

单向链表Demo:

package com.wansha;

/**
 * 
 * @author sharp
 * @data 2011-9-13
 * @version 1.0
 * 
 */
public class Node {
	public String data;
	public Node nextnode;

	public Node() {

	}

	public Node(String data) {
		this.data = data;

	}
}


Test.java

package com.wansha;
/**
 * 
 * @author sharp
 * @data 2011-9-13
 * @version 1.0
 *
 */
public class Test {
	public static void main(String[] args) {
		Node node1 = new Node("Node1");
		Node node2 = new Node("Node2");
		Node node3 = new Node("Node3");
		node1.nextnode = node2;
		node2.nextnode = node3;
		
		//通过node1获取node3的内容
		System.out.println(node1.nextnode.nextnode.data);
		
	}
}

双向链表Demo:

Node2.java

package com.wansha;
/**
 * 
 * @author sharp
 *
 */
public class Node2 {
	public Node2 pre;
	public String data;
	public Node2 next;

	public Node2() {

	}

	public Node2(String data) {
		this.data = data;
	}
}


Test2.java

package com.wansha;

/**
 * 
 * @author sharp
 * 
 */
public class Test2 {
	public static void main(String[] args) {
		Node2 node1 = new Node2("node1");
		Node2 node2 = new Node2("node2");
		Node2 node3 = new Node2("node3");

		node1.pre = node3;
		node1.next = node2;

		node2.pre = node1;
		node2.next = node3;

		node3.pre = node2;
		node3.next = node1;

		// 通过node1获得node3内容的两种方式
		System.out.println(node1.pre.data);
		System.out.println(node1.next.next.data);

		System.out.println("-----------------------");
		// 在1的位置上插入node4
		Node2 node4 = new Node2("node4");
		node1.next = node4;
		node2.pre = node4;

		node4.pre = node1;
		node4.next = node2;

		// 通过node1获得node3内容的两种方式
		System.out.println(node1.pre.data);
		System.out.println(node1.next.next.next.data);

		System.out.println("-----------------------");
		// 删除node4
		node4.pre = null;
		node4.next = null;

		node1.next = node2;
		node2.pre = node1;

		// 通过node1获得node3内容的两种方式
		System.out.println(node1.pre.data);
		System.out.println(node1.next.next.data);
	}
}

抱歉!评论已关闭.