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语言实现简单的链表操作插入删除显示等
简单的链表的基本操作,包括建空链表、删除结点、输出链表等
详细解释了链表的基本操作,附有实例代码! +《链表——>小阿豪带你写链表》!!!!进入正文 1.首先,先想好自己要创建的链表格式以及最后的的显示界面!!! 2.主函数尽量放到后面写,前面写功能函数,在调用...
用模板实现单向链表的操作,减少的代码的重写,是代码复用很方便。
该程序实现了在matlab下,用实现类的方式实现了一个简单的单向链表,可以方便大家参考扩展。
简单的用链表来实现图书的增删该查功能,更能明白链表的原理……
6) operator=()函数,实现两个链表的赋值操作(10分) 7) operator+()函数,实现两个链表的连接,A=B+C(10分) 2. 请编写main函数,测试该类模板的正确性: 1) 用List模板定义一个List类型的模板类对象int_...
自己写得关于循环链表的一些操作,比较简单,没写什么注释,自己应该看的明白…………
原创C语言数组形链表操作的具体接口,定义简单,逻辑清晰
用C++简单实现无头结点的建表,插入,删除操作
用E语言实现链表的简单例程,实现了链表的相关操作
实际上链表操作是相同的,而涉及到数据区域的操作就有不同 (3)问题 能不能有一种办法把所有链表中操作方法里共同的部分提取出来用一套标准方法实现,然后把不同的部分留着让具体链表的实现者自己去处理。 3、内核...
本程序是用C语言实现的简单学生成绩管理,用到的主要知识点是链表,涉及到链表的建立,插入,节点的删除,排序等几乎所有的链表常用操作.模块强,可以根据需要自行裁减,原创作品!
一个链表的实现,包括链表的创建、插入、删除、清空操作。简单,实用。希望对大家有所帮助。
点餐系统,用简单的c语言链表实现。通过在主函数循环调用各个函数,从而实现对链表的连续操作,最终实现链表的新建、打印、查找、保存、读取、更新、删除等等操作,进而管理订单与用户信息,并保存用户的各种信息,...
基于Keil开发环境,基于stm32f407与ili9341显示屏,通过链表的方式实现多级菜单的生成,支持按键连按,缺点在于光标移动时,整体刷新,有明显的闪烁感。不过操作简单。
C语言完成的链表,可以实现增删改查等常见功能,适合新手学习使用。
c语言版本链表操作实现!有注释!有测试!有结果!简单明了!
单链表的实现-简单操作
使用C语言详细实现了双向链表的相关基本操作,可以为初学者提供很好的入门帮助。并且在这些基础上,可以衍生出很多更为复杂,更加实用的一些操作。