`
finally_m
  • 浏览: 69661 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实现简单链表操作

 
阅读更多
class  NodeManager   
{   
 private Node rootNode;   
    
 //所有节点名连接后的字符串   
 private String nodeNames;   
    
 public NodeManager(String rootName){   
  rootNode = new Node();   
  rootNode.setName(rootName);   
 }   
  
 public Node getRootNode(){   
  return rootNode;   
 }   
    
 //添加节点   
 public void addNode(Node rootNode,String name){   
  if(rootNode.getNode()!=null){   
   //递归调用   
   addNode(rootNode.getNode(),name);   
  }else{   
   //创建一个新节点   
   Node newNode = new Node();   
   newNode.setName(name);   
   //把新节点添加到所有节点的最后   
   rootNode.setNode(newNode);   
  }   
 }   
    
 //删除一个节点   
 public void delNode(Node resNode,String name){   
  if(resNode.getNode()!=null){   
   if(resNode.getNode().getName().equals(name)){   
    resNode.setNode(resNode.getNode().getNode());   
   }else{   
    delNode(resNode.getNode(),name);    
   }   
  }   
 }   
    
 //按顺序显示所有节点的姓名   
 public void viewNode(Node rootNode){   
  if(rootNode.getNode()!=null){   
   nodeNames = nodeNames + "->" + rootNode.getNode().getName();   
   viewNode(rootNode.getNode());   
  }   
 }   
    
 public String display(Node node){   
  nodeNames = rootNode.getName();   
  viewNode(node);   
  return nodeNames;   
 }   
  
 class Node   
 {   
  private String name;   
  private Node node;   
  //private List<Node> nodeList = new ArrayList<Node>();   
  
  public void setName(String name){   
   this.name = name;   
  }   
  
  public String getName(){   
   return this.name;   
  }   
  
  public void setNode(Node node){   
   this.node = node;   
  }   
  
  public Node getNode(){   
   return this.node;   
  }   
 }   
 public static void main(String[] args)    
 {   
  //创建根节点   
  NodeManager nm = new NodeManager("根节点");   
     
  //添加子节点   
  nm.addNode(nm.getRootNode(),"节点1");   
  nm.addNode(nm.getRootNode(),"节点2");   
  nm.addNode(nm.getRootNode(),"节点3");   
  nm.addNode(nm.getRootNode(),"节点4");   
  
  //显示所有节点名   
  System.out.println(nm.display(nm.getRootNode()));   
  
  nm.delNode(nm.getRootNode(),"节点3");   
  System.out.println(nm.display(nm.getRootNode()));   
  
 }   
}  

 

分享到:
评论

相关推荐

    链表 简单 链表 操作

    链表是一种基础且重要的数据结构,它在计算机科学中扮演着...打开这个文件,你将能看到如何在C或C++中实现上述链表操作的示例代码。这些代码实例可以帮助你更好地理解链表的工作原理,并为你的编程技能打下坚实的基础。

    类实现一简单链表 用类的形式以及链表 结点

    这个简单的链表实现允许我们对整型数据进行基本的操作,但不包括更复杂的功能,如在链表中间插入或删除元素、查找特定元素等。要实现这些功能,你需要在`LinkedList`类中添加额外的方法。 在实际应用中,链表可能...

    双向链表模板类简单实现

    本文将深入探讨双向链表及其在C++中的模板类实现,以"双向链表模板类简单实现"为主题,我们来详细了解一下这个话题。 双向链表,与单向链表不同,它的每个节点不仅包含数据,还包含两个指针,一个指向下一个节点...

    使用C语言实现简单链表.docx

    链表是常见的数据结构,它由节点组成,每个节点包含数据和指向下一个节点的指针。...使用C语言可以实现简单链表,并且可以根据需要扩展这个基本框架,添加其他操作,如在特定位置插入节点、删除节点等。

    用类的方式实现C++链表功能

    本教程将介绍如何使用类的方式来实现一个简单的C++链表,包括链表的创建、插入、删除、修改和查找操作。下面我们将详细探讨这些知识点。 首先,链表的核心是链表节点,通常我们定义一个结构体或类来表示节点,它...

    delphi 实现简单链表和分词

    本项目“Delphi实现简单链表和分词”就是一个结合了这两种基础知识的应用实例,主要用于理解和实践如何在Delphi环境下构建链表以及进行简单的汉语分词。 首先,让我们详细讨论链表。链表是一种线性数据结构,它的...

    简单链表的C语言实现

    首先,`list.h` 文件通常包含链表操作的声明,也就是函数原型。在这个链表实现中,可能包括创建新节点、插入节点、删除节点、打印链表以及搜索节点等基本操作。这些函数通常会定义链表节点的结构体,并声明用于操作...

    用c语言实现简单的链表操作插入删除显示等

    用c语言实现简单的链表操作插入删除显示等

    c语言简单链表操作.pdf

    根据给定文件信息,这份文档名为“c语言简单链表操作.pdf”,其描述中表明文档涉及了链表操作,特别是与C语言相关的实现。同时,文档的标签为“技术及资料”,这提示了文档内容的专业性和技术性。文档的预览部分包含...

    链表的实现 各种链表源码

    在循环链表的源码中,会特别处理头尾节点的连接,以及如何在循环链表中实现插入和删除操作。 5. **链表的应用场景** 链表在许多算法和数据结构中都有应用,例如哈希表、队列、栈、图、LRU缓存等。源码可能包含了...

    C#实现双向链表C#,.net 链表 双向链表

    通过上述分析,我们可以看出,使用C#实现双向链表涉及创建适当的类结构来管理节点和链表,同时确保所有操作都能高效地处理双向链接。这种实现方式不仅遵循了双向链表的基本原则,而且提供了足够的灵活性和可扩展性,...

    C#泛型实现单向链表实现

    为了实现删除操作,我们需要一个Delete方法,根据给定的值查找并移除链表中的节点。这需要遍历链表,找到匹配的节点并更新其前一个节点的Next引用以跳过待删除节点: ```csharp public void Delete(T value) { if ...

    C++实现的一个简单链表

    总之,“C++实现的一个简单链表”项目提供了使用C++进行链表操作的基础,对于理解和掌握数据结构与算法有着重要意义。通过这个项目,开发者可以提升对C++对象和指针的理解,并学习如何有效地管理内存,同时了解链表...

    安卓版的c语言编译器如何实现简单的链表操作程序.txt

    安卓版的c语言编译器如何实现简单的链表操作程序

    java 实现倒序链表

    ### Java实现倒序链表 ...在实际开发中,掌握这样的链表操作技巧是非常有帮助的,尤其是在涉及到数据处理或算法实现时。此外,通过这种方式,还可以加深对Java语言特性的理解,提高解决问题的能力。

    实验二:链表的基本操作的实验报告

    通过这个实验,学生能够深入理解链表的存储结构,掌握链表操作的实现,并提升问题解决和程序设计的能力。同时,实验还强调了独立完成和分析程序的重要性,这有助于培养学生的自主学习和思考能力。

    c++链表的实现及链表的合并

    链表的实现通常包括插入、删除、遍历等基本操作。插入操作可以在链表的头部、尾部或者指定位置进行。例如,在链表头部插入节点的代码可能如下: ```cpp ListNode* insertAtHead(ListNode* head, int val) { ...

    双向链表的实现

    实现双向链表的基本操作包括创建新节点、插入节点、删除节点和遍历链表。创建新节点通常涉及为数据域分配内存并初始化指针域。插入节点分为在链表头部插入和在某个特定位置插入,这需要更新插入点前后节点的指针。...

    简单链表操作

    这个"简单链表操作"项目提供了一个C语言实现的链表,用于学习链表的基本操作,包括增、删、改、查。 首先,链表的核心是节点(Node)结构。一个节点通常包含两部分:数据域(Data)和指针域(Next)。数据域存储...

Global site tag (gtag.js) - Google Analytics