今天学习了一下链表,以前学习了数据结构,对链表就有认识,觉得链表是相当有用的,今天在蓝杰学习了感觉整个数据结构就是数据和结构,数据就不再多说,结构就是数组和链表,前几天用数组实现了队列,今天就把我实现的链表的练习发一下吧;个人感觉链表还挺有用的。
具体代码如下
先创建一个节点类
package com.lw20130717; public class LinkNode { public Object date; public LinkNode next; }
然后是链表里的具体方法
package com.lw20130717; public class LinkList { private LinkNode root ; private LinkNode last; //设置在链表中添加节点的方法 public void add(Object obj){ if(root==null){ root = new LinkNode(); root.date=obj; last = root; }else{ LinkNode next = new LinkNode(); next.date=obj; last.next=next; last = next; } } //检索出链表中的某个检索值的节点的 public LinkNode getNode(int index){ LinkNode tempLinkNode = new LinkNode(); int num=0; tempLinkNode = root; while(num!=index){ tempLinkNode = tempLinkNode.next; num++; } return tempLinkNode; } //获取整个链表的长度 public int size(){ LinkNode tempLinkNode = new LinkNode(); int num=0; tempLinkNode = root; while(tempLinkNode!=null){ tempLinkNode = tempLinkNode.next; num++; } return num; } //在链表中的某个位置中插入一个节点 public void insert(int index,Object obj){ LinkNode tempLinkNode = new LinkNode(); tempLinkNode.date=obj; int num = size(); if(index==0){ tempLinkNode.next=root; root = tempLinkNode; }else if(num==index){ last.next = tempLinkNode; last = tempLinkNode; }else{ LinkNode parent = getNode(index-1); LinkNode next = getNode(index); parent.next= tempLinkNode; tempLinkNode.next = next; } } //在链表中的某个位置移除一个节点 public void remove(int index){ int num = size(); if(index==0){ root = root.next ; }else if(index==(num-1)){ // LinkNode parent = getNode(index-1); // last = parent; LinkNode next = getNode(index-1); next.next=null; }else{ LinkNode parent = getNode(index-1); LinkNode next = getNode(index+1); parent.next = next; } if(index<0||index>(num-1)){ System.out.println("索引值超出范围"); } } }
左后就是测试类,可以自己随便写
package com.lw20130717; /** * 定义程序主入口类 * @author 李伟 20130717 * */ public class Manager { public static void main(String[]args){ LinkList list = new LinkList(); for(int i=0;i<10;i++){ list.add("学生"+i); } list.insert(1, "哈哈"); list.remove(10); System.out.println("总共有"+list.size()); for(int i=0;i<10;i++){ System.out.println(list.getNode(i).date); } } }
相关推荐
链表是一种基础且重要的数据结构,它在计算机科学和编程中扮演着不可或缺的角色。相比于数组,链表在存储和...通过实际操作,你可以更直观地感受链表的灵活性和效率,为以后处理更复杂的数据结构和算法打下坚实的基础。
内容概要:本文详细介绍了链表作为一种常用...其他说明:通过具体的实例和详尽的操作步骤,学习者可以更加直观地感受到链表的魅力。此外,文中提供了多种链表的实际应用场景,有助于学习者将理论知识应用于实际项目中。
《基于链表实现的学生成绩管理系统》 在IT领域,数据结构是计算机科学的基础,而链表作为其中的一种重要...同时,这个系统也适用于复习基础的同学,通过构建实际系统,可以更直观地感受到数据结构在解决问题中的作用。
通过实际编程,我们可以更直观地感受链表如何在内存中动态变化,以及如何高效地执行各种操作。 总之,这个实验提供了实践链表操作的机会,对于理解数据结构和算法的基础知识至关重要。掌握链表不仅对理解其他高级...
此外,作者提到代码已经过测试并可用,这为初学者提供了一个很好的起点,可以直接运行和调试代码,以直观地感受数据结构的运作。如果遇到任何问题,作者也表示愿意帮助解答,这为学习过程提供了良好的支持。 总的来...
在IT领域,C语言是一种非常基础且强大的编程语言,尤其在处理底层数据结构和算法时。链表作为数据结构中的重要一员,是理解和掌握...通过实际编写和调试代码,开发者可以更直观地感受链表的工作原理,提升编程能力。
通过这个项目,新手可以更直观地感受到数据结构和算法在实际问题中的应用,为今后的编程生涯奠定坚实基础。 总的来说,“学生信息系统”是一个结合理论与实践的优秀项目,它将链表与指针的知识巧妙地融入到日常管理...
为减少阻塞时间,可以采用双写策略,先创建新数组,然后在每次增删改查时同时操作旧表和新表,逐步迁移数据。 有序散列表是在散列表基础上附加一个双向链表,链表保持元素的插入顺序。这样,即使散列表中元素的位置...
在本课程实验中,我们将深入探讨使用C++编程语言实现单链表这一数据结构的...通过实际编写代码,你可以直观地感受到链表在内存管理和数据操作上的灵活性,这对于理解和应用数据结构至关重要。祝你在实验中取得成功!
本教学信息管理系统 ,我使用了链表数据结构来制作,实现了简单的增删查改逻辑,实现了文件的存储,并且终端界面较为美观易用。通过这次 C 语言课程设计的实践,我巩固了数据结构的知识,熟练应用了 C 语言指针。 这...
数据结构是计算机科学中的...通过阅读和运行这些代码,可以直观地感受C语言在数据结构中的应用,同时提升编程能力。学习数据结构不仅可以提高编程效率,还能为后续深入学习操作系统、编译原理等高级主题打下坚实基础。
通过这次数据结构课程设计的实践,我巩固了数据结构的知识,熟练应用了链表和栈。这个项目是我大三写的,现在回顾已经非常粗糙,分享出来一方面希望可以帮助初学者,另一方面希望能让同学们可以从目前大学中普遍毫无...
### 数据结构课程设计:链式简单选择排序 #### 一、课程设计问题描述及问题分析 ##### 1.1 课程设计问题...通过实际编程和测试,学生能更直观地感受到数据结构与算法的重要性,为后续的软件工程学习打下坚实的基础。
数据结构是计算机科学中的核心课程,它探讨了...通过动手实践,你可以直观地感受数据结构的工作原理,加深对C++编程的理解,同时提升算法设计和分析的技能。对于计算机科学的学习者而言,这是一份非常有价值的资源。
在实验过程中,学生需要记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。例如,学生可以记录实验中遇到的困难,例如链表的实现、算法的选择等,然后记录解决办法,例如查看相关文献、与...
##### 6.1 感受和体会 通过本次课程设计,深刻理解了数据结构和算法的重要性,特别是在实际项目中的应用价值。同时也意识到了良好的代码习惯和文档编写对于项目维护的重要性。 ##### 6.2 对算法改进的想法 - 可以...
数据结构的知识点抽象、逻辑性强,学生往往难以直观感受其应用价值,而将其融入游戏,则可以将抽象的数据结构概念具体化、生动化,让学生在游戏的过程中体会和理解数据结构的实际用途。 文章首先概述了数据结构在...
实验体会部分,王晨阳可能分享了自己对LRU算法的理解,以及通过实践感受到的LRU与其他近似算法(如FIFO、LFU等)的差异,同时也可能深入理解了虚拟内存的概念,例如页面替换的必要性、内存管理的策略选择等。...
总结来说,这个项目通过实际的通讯录应用,使我们直观地感受到了数据结构在解决实际问题中的作用。它不仅锻炼了编程能力,也加深了对数据结构理论的理解。无论是链表的灵活性,数组的直接访问,还是树形结构的高效...