模拟双链表
来源:互联网 发布:php基本知识 编辑:程序博客网 时间:2024/06/14 07:18
package l2;//双链表public class DLink {DNode head;public DLink() {head = new DNode();head.next = null;head.prior = null;}/** * * @Title: addNode * @Description: TODO(添加节点) * @param @param data 参数说明 * @return void 返回类型 * @throws */public void addNode(String data) {DNode p = head;while (p.next != null) {p = p.next;}DNode temp = new DNode(data);p.next = temp;temp.prior = p;}/** * * @Title: delNode * @Description: TODO(删除节点) * @param @param data 参数说明 * @return void 返回类型 * @throws */public void delNode(String data) {DNode p = head;if (p.next == null) {return;}while (p.next != null) {if (p.next.name.equals(data)) {p.next.next.prior = p.next.prior;p.next = p.next.next;break;} else {p = p.next;}}}/** * * @Title: display * @Description: TODO(遍历链表) * @param 参数说明 * @return void 返回类型 * @throws */public void display() {DNode p = head;//从头到尾while (p.next != null) {System.out.println(p.next.name);p = p.next;}System.out.println("-----------------------");//从尾到头while (p.prior != head) {System.out.println(p.name);p = p.prior;}System.out.println(p.name);}/** * * @Title: findNode * @Description: TODO(查找节点) * @param @param data 参数说明 * @return void 返回类型 * @throws */public void findNode(String data) {DNode p = head;while (p.next != null) {if (p.next.name.equals(data)) {System.out.println("data=" + p.next.name);break;} else {p = p.next;}}}/** * * @Title: insertNode * @Description: TODO(插入节点) * @param @param beforeData* @param @param data 参数说明 * @return void 返回类型 * @throws */public void insertNode(String beforeData, String data) {DNode p = head;while (p.next != null) {if (p.next.name.equals(beforeData)) {DNode temp = p.next;DNode insertNode = new DNode(data);insertNode.next = temp.next;temp.next.prior = insertNode;temp.next = insertNode;insertNode.prior = temp;break;} else {p = p.next;}}}/** * * @Title: size * @Description: TODO(获取节点大小) * @param 参数说明 * @return void 返回类型 * @throws */public void size() {DNode p = head;int i = 0;while (p.next != null) {System.out.println(p.name);p = p.next;i++;}System.out.println("长度:" + i);}}
package l2;//节点类public class DNode {String name;DNode prior;DNode next;public DNode() {}public DNode(String name) {super();this.name = name;prior = null;next = null;System.out.println("生成节点:" + name);}}
package l2;public class TestDLink {public static void main(String[] args) {DLink link = new DLink();link.addNode("1");link.addNode("2");link.addNode("3");link.addNode("4");link.display();System.out.println("-------------");link.delNode("3");link.display();System.out.println("----------------");link.insertNode("2", "3");link.display();}}
0 0
- 模拟双链表
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟:
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- SDL介绍
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时回到手机桌面,然后才会跳转到当前activity
- 关于Event Listener事件(addListener)和Event inline事件(onclick)区别的实例
- 轮询与抢占式任务调度区别
- (三)数据库查询
- 模拟双链表
- MongoDB 查询文档(二)
- md5与string.Equals的效率差距到底有多大
- VirtualBox更改虚拟硬盘 VDI文件空间大小的方法(设置的硬盘小了)
- 名企笔试:好未来2017秋招笔试(连续最长的数字串)2017-03-05 算法爱好者
- C++ — 全特化和偏特化
- Nginx集群
- Docker改名啦?什么是 Project Moby
- android.text.TextUtils不常用的方法笔记