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语言可以实现简单链表,并且可以根据需要扩展这个基本框架,添加其他操作,如在特定位置插入节点、删除节点等。
本教程将介绍如何使用类的方式来实现一个简单的C++链表,包括链表的创建、插入、删除、修改和查找操作。下面我们将详细探讨这些知识点。 首先,链表的核心是链表节点,通常我们定义一个结构体或类来表示节点,它...
本项目“Delphi实现简单链表和分词”就是一个结合了这两种基础知识的应用实例,主要用于理解和实践如何在Delphi环境下构建链表以及进行简单的汉语分词。 首先,让我们详细讨论链表。链表是一种线性数据结构,它的...
首先,`list.h` 文件通常包含链表操作的声明,也就是函数原型。在这个链表实现中,可能包括创建新节点、插入节点、删除节点、打印链表以及搜索节点等基本操作。这些函数通常会定义链表节点的结构体,并声明用于操作...
用c语言实现简单的链表操作插入删除显示等
根据给定文件信息,这份文档名为“c语言简单链表操作.pdf”,其描述中表明文档涉及了链表操作,特别是与C语言相关的实现。同时,文档的标签为“技术及资料”,这提示了文档内容的专业性和技术性。文档的预览部分包含...
在循环链表的源码中,会特别处理头尾节点的连接,以及如何在循环链表中实现插入和删除操作。 5. **链表的应用场景** 链表在许多算法和数据结构中都有应用,例如哈希表、队列、栈、图、LRU缓存等。源码可能包含了...
通过上述分析,我们可以看出,使用C#实现双向链表涉及创建适当的类结构来管理节点和链表,同时确保所有操作都能高效地处理双向链接。这种实现方式不仅遵循了双向链表的基本原则,而且提供了足够的灵活性和可扩展性,...
为了实现删除操作,我们需要一个Delete方法,根据给定的值查找并移除链表中的节点。这需要遍历链表,找到匹配的节点并更新其前一个节点的Next引用以跳过待删除节点: ```csharp public void Delete(T value) { if ...
总之,“C++实现的一个简单链表”项目提供了使用C++进行链表操作的基础,对于理解和掌握数据结构与算法有着重要意义。通过这个项目,开发者可以提升对C++对象和指针的理解,并学习如何有效地管理内存,同时了解链表...
安卓版的c语言编译器如何实现简单的链表操作程序
### Java实现倒序链表 ...在实际开发中,掌握这样的链表操作技巧是非常有帮助的,尤其是在涉及到数据处理或算法实现时。此外,通过这种方式,还可以加深对Java语言特性的理解,提高解决问题的能力。
通过这个实验,学生能够深入理解链表的存储结构,掌握链表操作的实现,并提升问题解决和程序设计的能力。同时,实验还强调了独立完成和分析程序的重要性,这有助于培养学生的自主学习和思考能力。
链表的实现通常包括插入、删除、遍历等基本操作。插入操作可以在链表的头部、尾部或者指定位置进行。例如,在链表头部插入节点的代码可能如下: ```cpp ListNode* insertAtHead(ListNode* head, int val) { ...
实现双向链表的基本操作包括创建新节点、插入节点、删除节点和遍历链表。创建新节点通常涉及为数据域分配内存并初始化指针域。插入节点分为在链表头部插入和在某个特定位置插入,这需要更新插入点前后节点的指针。...
这个"简单链表操作"项目提供了一个C语言实现的链表,用于学习链表的基本操作,包括增、删、改、查。 首先,链表的核心是节点(Node)结构。一个节点通常包含两部分:数据域(Data)和指针域(Next)。数据域存储...