javascript-ife笔记-javascript和树

2024-06-04 04:58
文章标签 java 笔记 script ife

本文主要是介绍javascript-ife笔记-javascript和树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、二叉树


二叉树遍历:

(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树。简记左-根-右。(3)后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。简记左-右-根。 
前序遍历:


结果为:ABDHIEJCFKG

算法为:

function preOrder(node){if(!(node==null)){data.push(node);preOrder(node.firstElementChild);preOrder(node.lastElementChild);}
}
中序遍历:


结果为:HDIBEJAFKCG

算法:

function inOrder(node){if(!(node==null)){inOrder(node.firstElementChild);data.push(node);inOrder(node.lastElementChild);}
}
后序遍历:

结果为:HIDJEBKFGCA
算法:
function postOrder(node){if(!(node==null)){postOrder(node.firstElementChild);postOrder(node.lastElementChild);data.push(node);}
}

DOM小结:
1、Element.children:(只读)返回所有一级子元素(Element类型的)。
2、Element.className:返回该元素的class名字。
3、Element.firstElementChild:(只读)返回第一个子元素(Element类型,不存在返回null)。
4、Element.id:返回该元素的id。
5、Element.innerHTML:返回该元素内的所有内容。
6、Element.lastElementChild:只读)返回最后一个子元素(Element类型,不存在返回null)。
7、Element.nextElementSibling:(只读)返回当前元素在其父元素的子元素中的后一个元素节点,如果该元素已经是最后一个元素节点,返回null。
8、Element.outerHTML:获取该元素及其后代的HTML文本。(innerHTML不包含该元素本身)
9、Element.previousElementSibling:(只读)返回该元素上一个兄弟节点,不存在返回null。
10、Element.tagName:(只读)返回该元素的标签名。

查看任务二十二的源代码:

See the Pen ife_baidu-任务二十二-JavaScript和树(一) by tombflylee (@tombflylee) onCodePen.

2、多叉树:

深度优先遍历、广度优先遍历

1、深度优先遍历:

(1)访问顶点v;

(2)从v的未被访问的邻接点中选取一个顶点w,从w出发进行深度优先遍历;

(3)重复上述两步,直至图中所有和v有路径相通的顶点都被访问到。

例子:

one
  ├── two
  │   ├── five
  │   └── six
  ├── three
  └── four
      └── seven
遍历结果

'five'
'six'
'two'
'three'
'seven'
'four'
'one'
算法:

function traverseDF(node){for(var i=0;i<node.children.length;i++){traverseDF(node.children[i]);}data.push(node);
}
2、广度优先遍历:

结果:

'one'
'two'
'three'
'four'
'five'
'six'
'seven'
算法:

function traverseBF(node){
    if(node){data.push(node);traverseBF(node.nextElementSibling);node=data[index++];traverseBF(node.firstElementChild);}
}
DOM小结:很多DOM类型都从Node类型继承
1、Node.childNodes:(只读)返回所有子节点的集合(包括Element类型和Text类型。)
2、Node.firstChild:(只读)返回第一个子节点,即childNodes的第一个节点。
上述两者childNodes[0]和firstChild都受空格等的影响
<p id="para-01"><span>First span</span>
</p><script type="text/javascript">var p01 = document.getElementById('para-01');alert(p01.firstChild.nodeName)提示框将显示 '#text'
</script>
<p id="para-01"><span>First span</span></p>这样写不影响<script type="text/javascript">var p01 = document.getElementById('para-01');alert(p01.firstChild.nodeName)
</script>

3、Node.lastChild:(只读)返回最后一个子节点。
4、Node.nodeName:(只读)返回节点名称(如果是Element类型,返回Element.tagName;如果是Text类型,返回#text)
5、Node.nodeValue:获取或设置当前节点的值(如果是Element类型,返回null;如果是Text类型,返回文本节点的内容)
注意:在使用firstChild.nodeValue时,返回的字符会包含很多空白字符,
     所以firstChild.nodeValue.replace(/(^\s*)|(\s*$)/g,"")

6、Node.textContent:返回或设置一个节点的文本内容。
	(innerText是IE引用的,没有textContent好)
//   <div id="divA">This is <span>some</span> text</div>// 获得文本内容:
var text = document.getElementById("divA").textContent;
//"This is some text".// 设置文本内容:
document.getElementById("divA").textContent = "This is some text";
//   <div id="divA">This is some text</div>

查看任务二十三的源代码:

See the Pen ife_baidu-任务二十三-JavaScript和树(二) by tombflylee (@tombflylee) on CodePen.






这篇关于javascript-ife笔记-javascript和树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029125

相关文章

Spring IOC的三种实现方式详解

《SpringIOC的三种实现方式详解》:本文主要介绍SpringIOC的三种实现方式,在Spring框架中,IOC通过依赖注入来实现,而依赖注入主要有三种实现方式,构造器注入、Setter注入... 目录1. 构造器注入(Cons编程tructor Injection)2. Setter注入(Setter

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内