链结点:在链表中,每个数据项都被包含在"链结点"(Link)中.一个链结点是某个类的对象,这个类可以叫Link.而每个Link对象中又包含着一个对下一个链结点引用的字段(通常叫next)
image.png
链节点:
/**
* 节点
* 在Java中实现链表是非常简单的,每个节点都有一个值,然后把它链接到下一个节点。
* @author JiaoNingbo
*
*/
public class Node {
int val; //自己的值
Node next; //下一个值的节点
public Node(int val) {
this.val = val;
this.next = null;
}
@Override
public String toString() {
return "[val=" + val + ", next=" + next + "]";
}
}
链表类:
/**
*
* @author JiaoNingbo
*
*/
public class Stack {
Node top; //链节点
//返回链表
public Node peek() {
if (top != null) {
return top;
}
return null;
}
//取出元素
public Node pop() {
if (top == null) {
return null;
}else {
Node temp = new Node(top.val);
top = top.next;
return temp;
}
}
//添加元素
public void push(Node node) {
if (node != null) {
node.next = top;
top = node;
}
}
}
队列
/**
* 队列
* @author JiaoNingbo
*
*/
public class Queue {
Node first,last;
//存
public void enqueue(Node n) {
if (first == null) {
first = n;
last = first;
}else {
last.next = n;
last = n;
}
}
//取
public Node dequeue() {
if(first == null){
return null;
}else{
Node temp = new Node(first.val);
first = first.next;
return temp;
}
}
@Override
public String toString() {
return "Queue [first=" + first + ", last=" + last + "]";
}
测试类
/**
* 测试类
* @author JiaoNingbo
*
*/
public class MainNode {
public static void main(String[] args) {
Stack stack = new Stack();
Node n1 = new Node(1);
Node n2 = new Node(3);
Node n3 = new Node(8);
Node n4 = new Node(99);
Node n5 = new Node(66);
stack.push(n3);
stack.push(n2);
stack.push(n1);
stack.push(n4);
stack.push(n5);
System.out.println(n5.toString());
System.out.println("***************");
Node node = stack.peek();
System.out.println(node);
System.out.println("***************");
Node node2 = stack.pop();
System.out.println(node2);
Node node3 = stack.pop();
System.out.println(node3);
}
}
image.png
public class MainQueue {
public static void main(String[] args) {
Node n1 = new Node(9);
Node n2 = new Node(7);
Node n3 = new Node(11);
Node n4 = new Node(16);
Queue queue = new Queue();
queue.enqueue(n4);
queue.enqueue(n3);
queue.enqueue(n2);
queue.enqueue(n1);
System.out.println(queue);
Node node = queue.dequeue();
Node node1 = queue.dequeue();
Node node2 = queue.dequeue();
Node node3 = queue.dequeue();
System.out.println(node);
System.out.println(node1);
System.out.println(node2);
System.out.println(node3);
}
}
image.png
若有不足之处还望大家指正(๑╹◡╹)ノ"""