赞
踩
今天介绍两个基础的数据结构,链表和栈
在介绍栈之前需要先说说链表:
链表以节点为单位,每个元素都是一个独立对象,在内存空间的存储是非连续的。链表的节点对象具有两个成员变量:「值 val
」,「后继节点引用 next
」 。
- class ListNode{
- int val;//一个节点值
- ListNode next;//后节点
- ListNode(int x){val=x;}
- }
因为每一个节点都是实例化的,我们可以这样写:
- ListNode n1 = new ListNode(3);
- ListNode n2 = new ListNode(6);
- ListNode n3 = new ListNode(9);
- n1.next=n2;//把n1传给n2
接下来说说什么是栈:
栈是一钟先进后出的抽象数据结构,可以由数组或者链表组成:
- Stack<Integer> stack = new Stack<>();
- //入栈
- stack.push(1);
- stack.push(2);
- //出栈
- stack.pop();//元素2出栈
- stack.pop();//元素1出栈
注意,通常情况下,不推荐使用java中Vector以及它的子类stack作为栈来使用,而是使用LinkedList作为栈来使用
- LinkedList<Integer> stack = new LinkedList<>();
- stack.addLast(1);
- stack.addLast(2);
- stack.removeLast();//元素2出栈
- stack.removeLast();//元素1出栈
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。