蝙蝠岛资源网 Design By www.hbtsch.com
package 数据结构算法.链表; /* *定义节点 * 链表由节点构成 */ public class Node<E> { private E e; //数据data private Node<E> next; //指向下一个节点 public Node() { } public Node(E e) { this.e = e; } public Node<E> getNext() { return next; } public void setNext(Node<E> next) { this.next = next; } public E getE() { return e; } public void setE(E e) { this.e = e; } }
package 数据结构算法.链表; /* * 定义实现类MyLinkedList * 实现链表的基本功能:增删改查 */ public class MyLinkedList<E> { //声明头节点尾节点 private Node<E> head; private Node<E> last; //链表的大小 private int size; private int modcount; //计算被修改的次数 public MyLinkedList() { head = new Node<E>();//实例化头结点 last = head; } /* *返回单链表中存储的元素总数 */ public int size() { return size; } /* *获取指定索引位置的节点对象 */ public Node<E> get(int index) { if (index < 0 || index > size - 1) return null; Node<E> node = head.getNext();//将头结点的下一个节点赋给Node for (int i = 0; i < index; i++) { node = node.getNext();//获取node的下一个节点 } return node; } /* *获取指定索引位置的数据 */ public E getValue(int index) { if (index < 0 || index > size - 1) return null; Node<E> node = get(index); return node.getE(); } /* *增加元素 */ public void add(E e) { Node<E> node = new Node<E>(e); //以e实例化一个节点 last.setNext(node);//往尾节点后追加节点 last = node;//该节点设为最后一个节点 size++; modcount++; } /* *指定位置插入元素,返回插入的节点数据 */ public E add(int index, E e) { if (index < 0 || index > size - 1) return null; Node<E> node = new Node<E>(e); //实例化一个节点 //找到插入的原节点 Node<E> oldNode = get(index); if (index == 0) {//当索引为0时 head.setNext(node); } else { //找到插入节点的上一个 Node<E> bNode = get(index - 1); bNode.setNext(node); } node.setNext(oldNode); size++; modcount++; return oldNode.getE(); } /* *删除指定的节点e,并返回删除节点的数据 */ public E delete(int index) { if (index < 0 || index > size - 1) return null; if (index == 0) {//当索引为1,令头结点的下一个节点为头结点 Node<E> node = head.getNext(); head.setNext(node.getNext()); } //获取要删除节点的前一个节点 Node<E> bNode = get(index - 1); //获取要删除的节点 Node<E> Node = bNode.getNext(); //获取要删除节点的下一个节点 Node<E> nNode = Node.getNext(); //删除该节点 bNode.setNext(nNode); //清除Node的下一个节点 Node.setNext(null); size--; modcount++; return Node.getE();//返回节点中的数据域 } /* *修改指定位置的数据域并返回修改后的数据 */ public E set(int index, E e) { if (index < 0 || index > size - 1) return null; //获取指定位置的原节点 Node<E> node = get(index); node.setE(e); modcount++; return node.getE(); } }
package 数据结构算法.链表; /* *定义测试类 */ public class MyLinkedListTest { public static void main(String[] args) { MyLinkedList<String> list = new MyLinkedList<>(); //测试add list.add("one"); list.add("two"); list.add("three"); list.add("four"); list.add(0,"newone"); list.add(1,"newtwo"); for (int i = 0; i < list.size(); i++) { System.out.print(list.getValue(i)+" "); } //测试set System.out.println(); list.set(0, "111"); list.set(1, "222"); System.out.println(list.getValue(0) + " " + list.getValue(1)); //测试delete System.out.println(); list.delete(1); for (int i = 0; i < list.size(); i++) { System.out.print(list.getValue(i)+" "); } } }
运行结果如下:
以上就是全部知识点内容,感谢大家对的支持。
标签:
java,单链表,增删改查
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无java实现单链表增删改查的实例代码详解的评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年12月26日
2024年12月26日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]