链表数据结构
来源:互联网 发布:淘宝网折800唯影女装 编辑:程序博客网 时间:2024/05/21 22:31
链表数据结构
链表数据结构是一种常见的数据结构,它是一种线性表,但并不是按线性顺序存储数据的,而是在每一个节点里存到下一个节点的指针。
该数据结构比较适合频繁的进行插入和删除操作。
该数据结构常与递归一起使用
举例说明该链表结构的写法
首先定义一个节点管理的类,用内部类表示每一个节点的对象。在内部类里定义它的属性,比如:节点名,指向下一个节点的指针。
又因为该数据结构多用于插入和删除的操作,我们就在内部类中定义这些方法。
//节点管理类class NadeManager{ private Node root;//根节点 //因为内部类方法不允许外部类随意使用,所以在外部类中也写一些方法来调用内部类中的方法。 public void addNode(String name){ if(root == null){ root = new Node(name); }else{ root.add(name); } } public void delNode(String name){ if(root.getName().equals(name)){ root = root.next; }else{ root.del(name); } } public void printNode(){ if(root != null){ System.out.print(root.getName() + "->"); root.print(); System.out.println(); } }// 每个节点对象,链表数据结构的写法 class Node{ private String name; private Node next;//当前节点的下一个节点 public String getName(){ return name; } public Node(String name){ this.name = name; } public void add(String name){ if(this.next == null){ this.next = new Node(name); }else{ this.next.add(name);//递归 是this.next调用了add方法 } } public void del(String name){ if(this.next != null){ if(this.next.name.equals(name)){ this.next = this.next.next; }else{ this.next.del(name); } } } public void print(){ if(this.next != null){ System.out.print(this.next.getName() + "->"); this.next.print(); } } }}
在这种情况下,插入和删除操作的性能就比使用数组要高的多了。测试类如下:
public class factorial{ public static void main(String[] args){ NadeManager nm = new NadeManager(); nm.addNode("0"); nm.addNode("1"); nm.addNode("2"); nm.addNode("3"); nm.addNode("4"); nm.addNode("5"); nm.addNode("6"); nm.addNode("7"); nm.addNode("8"); nm.addNode("9"); nm.printNode(); nm.delNode("4"); nm.printNode(); }}
测试结果:
1 0
- 数据结构-01-链表数据结构之单链表
- 数据结构之链表
- 数据结构-线性链表
- 数据结构 循环链表
- 线性链表---数据结构
- java数据结构链表
- 数据结构之链表
- 数据结构-实现链表
- 数据结构链表队列
- 【数据结构】静态链表
- 数据结构-链表队列
- 数据结构 线性链表
- 数据结构《顺序链表》
- 数据结构:块状链表
- 数据结构:块状链表
- 数据结构:静态链表
- 数据结构--双向链表
- 数据结构----链表队列
- 系统状态栏和app页面一体化
- putty配置相关
- JAVA并发-减少锁的竞争
- 关于模式识别、机器学习、推荐系统、图像特征、数值计算、目标跟踪知识专家博客
- 实战录 | Wuli测试媛推荐的构造大数据量的方法
- 链表数据结构
- Ubuntu安装deb及依赖
- 修改android签名证书keystore
- 读取通知栏消息
- OC里面UIWebView中js交互
- leetcode 225. Implement Stack using Queues
- UML基本表示法
- Eclipse中自动添加注释(作者,时间)
- 51nod 1087 1 10 100 1000