本专栏持续输出数据结构题目集,欢迎订阅。文章目录题目代码题目请编写程序,根据给定信息构建森林,并找出给定结点所在树的根结点。输入格式:输入首先给出一个正整数n(0#defineMAX_N20intmain(){intn;scanf("%d",&n);intparent[MAX_N];chardata[MAX_N];//读取输入数据for(inti=0;i
树莓派i2c通信C语言,基于I2C的STM32与树莓派通信
茶话股经
树莓派i2c通信C语言
传统的串口通信会丢失数据,不可靠,故采用I2C(同步串行总线)通信。树莓派上使用python脚本,后期将使用c或java重写,目前没有需求。树莓派作主机(Master),stm32作从机(Slave)。特别需要注意的是,I2C的通信虽然只需要两根线就能通信,但是需要第三根线接地GND(提供判断低电位的能力),否则不能正常识别stm32从机使用ArduinoIDE编程以下是STM32的代码:#inc
【数据结构 | C语言】Dijkstra算法(迪杰斯特拉算法)
竹一笔记
C数据结构数据结构c语言开发语言
文章目录一、Dijkstra算法介绍二、算法C语言三、完整代码四、示例一、Dijkstra算法介绍Dijkstra算法解决了单源点的最短路径Dijkstra算法是贪心算法步骤:从源点出发,找到已连通点与未连通点的最小代价边连接最小代价边,将该顶点归并到已连接顶点集将该顶点连通的边的代价与最小代价比较,若代价小于最小代价,则更新最小代价边重复操作,直到连通所有顶点为止Dijkstra算法与Prim算
数据结构进阶:使用链表实现栈和队列详解与示例(C, C#, C++)
文章目录1、栈与队列简介栈(Stack)队列(Queue)2、使用链表实现栈C语言实现C#语言实现C++语言实现3、使用链表实现队列C语言实现C#语言实现C++语言实现4、链表实现栈和队列的性能分析时间复杂度空间复杂度性能特点与其他实现的比较总结在软件开发中,数据结构是不可或缺的一部分。本文将详细介绍如何使用链表来实现栈和队列这两种基本的数据结构,并提供C、C#和C++三种语言的示例代码。1、栈与
【PTA数据结构 | C语言版】求图中关键活动
本专栏持续输出数据结构题目集,欢迎订阅。文章目录题目代码题目请编写程序,实现求带权的有向图中关键活动的算法。输入格式:输入首先在第一行给出两个正整数,依次为当前要创建的图的顶点数n(≤100)和边数m。随后m行,每行给出一条有向边的起点编号、终点编号、权重。顶点编号从0开始,权重(≤100)为整数。同行数字均以一个空格分隔。输出格式:按格式输出关键活动,其中u为起点编号,v为终点编号。按起点编号的
【PTA数据结构 | C语言版】最短路的交点
本专栏持续输出数据结构题目集,欢迎订阅。文章目录题目代码题目给定有向加权图G,和4个顶点u,v,s,t。假设图G中所有边的权值都非负。设计一个算法来判定“从u到v的最短路径”和“从s到t的最短路径”是否存在一个交点w。也即,顶点w是u到v的最短路径上的一个顶点,同时也是s到t的最短路径上的一个顶点。注意:最短路径包含两个端点;一对顶点间的最短路径可能不止一条,求交点时必须将所有最短路径考虑在内。输
【PTA数据结构 | C语言版】哥尼斯堡的“七桥问题”
秋说
PTA数据结构题目集数据结构c语言算法
本专栏持续输出数据结构题目集,欢迎订阅。文章目录题目代码题目哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示。可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(LeonhardEuler,1707—1783)最终解决了这个问题,并由此创立了拓扑学。这个问题如今可以描述为判断欧拉回路是否存在的问题。欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到
【PTA数据结构 | C语言版】斜堆的合并操作
本专栏持续输出数据结构题目集,欢迎订阅。文章目录题目代码题目请将给定数据顺次插入初始为空的斜堆,用此法建立两个斜堆,再将两堆合并。为了验证结果的正确性,输出结果堆的前序和中序遍历序列。输入格式:输入先后给出两个堆的元素。每个堆元素输入的格式为:首先在一行中给出正整数n(≤1000),即元素个数;随后一行给出n个元素的整数键值,范围不超过int型整数。输出格式:首先按照前序遍历、其次按照中序遍历,输
【PTA数据结构 | C语言版】求单源最短路的Dijkstra算法
本专栏持续输出数据结构题目集,欢迎订阅。文章目录题目代码题目请编写程序,实现在带权的有向图中求单源最短路的Dijkstra算法。注意:当多个待收录顶点路径等长时,按编号升序进行收录。输入格式:输入首先在第一行给出两个正整数,依次为当前要创建的图的顶点数n(≤100)和边数m。随后m行,每行给出一条有向边的起点编号、终点编号、权重。顶点编号从0开始,权重(≤100)为整数。同行数字均以一个空格分隔。
C程序设计语言
cvcode吴
c语言开发语言
1.入门学习一门新程序设计语言的惟一途径就是使用它编写程序。对于所有语言的初学者来说编写的第一个程序几乎都是相同的,即:请打印出下列内容hello,world尽管这个练习很简单,但对于初学语言的人来说,它仍然可能成为一大障碍,因为要实现这个目的,我们首先必须编写程序文本,然后成功地运行编译,并加载、运行,最后输出到某个地方。掌握了这些操作细节以后,其它事情就比较容易了。在C语言中,我们可以用下列程
c语言进阶 字符函数和字符串函数
91刘仁德
c语言c语言
字符函数和字符串函数字符函数和字符串函数1.strlenstrlen函数详解模拟实现1.计数器方式2.不能创建临时变量计数器(递归)3.指针-指针的方式2.strcpystrcpy函数详解模拟实现3.strcatstrcat函数详解模拟实现4.strcmpstrcmp函数详解模拟实现5.strncpystrncpy函数详解模拟实现6.strncatstrncat函数详解模拟实现7.strncmps
c语言初阶 指针
91刘仁德
c语言c语言java算法
指针C语言指针详解1.指针是什么(1)指针的本质(2)32位地址的产生(3)指针变量的大小2.指针和指针类型(1)指针类型的意义(2)指针加减运算3.野指针(1)野指针的成因(2)避免野指针的方法①初始化指针②避免返回局部变量地址③检查指针有效性④避免指针越界4.指针运算(1)指针加减整数(2)指针相减(3)指针的关系运算5.指针和数组(1)数组名与指针的关系(2)通过指针遍历数组(3)数组作为函
JAVA 和Python对比
xiayu98020214
在深蓝的日子python
JAVA和Python对比1.数据类型pythonInt,float,complexnumbers都没有定义到底占用多少个字节空间。都是没有取值范围,也没有无符号的情况。JAVAJAVA有基础数据类型,都有确定占多少个字节2.全局变量python类似c语言,可以定义全局变量,全局的函数。JAVAjava都要定义类才行。3.变量声明python无需声明类型,直接使用。会造成一个困扰,这个变量到底是新
C语言中的正则表达式使用示例详解-转载
边躺平边学习
笔记正则表达式c语言开发语言
C语言中的正则表达式使用示例详解正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。本文通过示例代码给大家介绍了C语言中的正则表达式使用,感兴趣的朋友跟随小编一起看看吧正则表达式,又称正规表示法、常规表示法(英语:RegularExpression,在代码中常简写为regex、regexp或RE)。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在c语言中,
CAN发送JSON数据
摸鱼的小羊
jsonandroidjavascript
CAN发送JSON数据文章目录CAN发送JSON数据前言一、核心问题与前提1、CAN总线的数据限制2、硬件基础二、实现步骤1.JSON数据的序列化(发送端)2.数据分片(关键步骤)3.CAN帧发送4.接收端处理5.校验与可靠性设计三、硬件与软件选型1.硬件2.软件四、示例代码片段(简化)1.发送端(C语言,基于STM32+cJSON+CAN)2.接收端(重组逻辑)总结1.数据长度优化:2.抗干扰:
Redis实战:第一章-初识Redis案例-文章投票
随风而醒
MySQL/数据库redis
redis全称REmoteDIctionaryServer,即远程字典服务,是一个由SalvatoreSanfilippo写的key-value存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Map),
C语言中的结构体大小计算与字节对齐
人才程序员
C语言系列课程c语言javalinux开发语言后端软件工程软件构建
文章目录C语言中的结构体大小计算与字节对齐1.结构体字节对齐的原理1.1什么是字节对齐?1.2字节对齐的影响1.3对齐方式2.结构体大小的计算2.1默认字节对齐规则解释:可能的内存布局:2.2结构体的对齐与大小3.控制字节对齐:`#pragmapack`3.1使用`#pragmapack`设置字节对齐3.2示例:使用`#pragmapack`来控制对齐注意:3.3恢复默认对齐4.总结C语言中的结构
【时时三省】(C语言基础)字符指针作函数参数
时时三省
【理论+经验】c语言入门c语言基础知识点c语言
山不在高,有仙则名。水不在深,有龙则灵。----CSDN时时三省如果想把一个字符串从一个函数“传递”到另一个函数,可以用地址传递的办法,即用字符数组名作参数,也可以用字符指针变量作参数。在被调用的函数中可以改变字符串的内容,在主调函数中可以引用改变后的字符串。例题1用函数调用实现字符串的复制。解题思路:定义一个函数copy_string用来实现字符串复制的功能,在主函数中调用此函数,函数的形参和实
【时时三省】unity test 测试框架 介绍(适用于C语言进行测试的)
时时三省
unity游戏引擎
山不在高,有仙则名。水不在深,有龙则灵。----CSDN时时三省目录1,关于unitytest测试框架的介绍2,测试框架关于源码的介绍3,使用unitytest测试C代码4,常用断言举例1,关于unitytest测试框架的介绍unitytest是ThrowTheSwitch.org的一个主要工程。它是专注于为嵌入式工具链而生的C语言单元测试框架。它可以适用于大工程或者小工程都可以。它的核心文件是一
【C语言】指针的爱恨纠葛:常量指针vs指向常量的指针
LuckiBit
C语言c语言java指针常量指针指向常量的指针嵌入式内存
目录常量指针vs.指向常量的指针1.综合比较2.常量指针(ConstantPointer)2.1定义与语法2.2示例代码2.3解释2.4应用场景2.5注意事项3.指向常量的指针(PointertoConstant)3.1定义与语法3.2示例代码3.3解释3.4应用场景3.5注意事项4.复杂示例4.1常量指针的复杂示例输出结果4.2指向常量的指针的复杂示例输出结果5.实际应用中的最佳实践5.1使用常
C语言-栈和队列
HanLop
初阶数据结构-C语言c语言开发语言数据结构算法
文章目录引言栈和队列1.栈1.1栈的概念与结构1.2栈的实现2.队列2.1队列的概念与结构2.2队列的实现结语引言欢迎来到HanLop博客的C语言数据结构初阶系列。在之前的文章中,我们详细介绍了链表及其操作方法。在本篇文章中,我们将深入探讨栈和队列这两种常见的数据结构。栈和队列虽然都是线性数据结构,但它们在数据的存取方式上有着显著的区别。栈是一种后进先出(LIFO,LastInFirstOut)的
数据结构(C语言实现)
呈羲
笔记数据结构c语言开发语言
一、链表1.链表实现以及在头部插入结点先来一段代码....该代码包含创建链表并在头部插入结点,遍历链表并打印结点数据,接下来逐步分析,简单的基础语法不过多记录....#include#includestructNode{intdata;structNode*next;};structNode*head;voidInsert(intx){Node*temp=(Node*)malloc(sizeof(
【华为OD机试真题 2025B卷】153、端口合并 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
KFickle
最新华为OD机试(C++JavaPyCJS)+OJ华为odc++java华为OD机试真题javascript端口合并
文章目录一、题目题目描述输入输出样例1样例2样例3二、代码与思路参考C++代码Java代码Python代码C语言代码JS代码订阅本专栏后即可解锁在线OJ刷题权限个人博客首页:KFickle专栏介绍:最新的华为OD机试真题,使用C++,Java,Python,C语言,JS五种语言进行解答,每个题目都包含解题思路,五种语言的解法,每日持续更新中,订阅后支持开通在线OJ测试刷题!!!一次订阅永久享受更新
遍历dom 并且存储(将每一层的DOM元素存在数组中)
换个号韩国红果果
JavaScripthtml
数组从0开始!!
var a=[],i=0;
for(var j=0;j<30;j++){
a[j]=[];//数组里套数组,且第i层存储在第a[i]中
}
function walkDOM(n){
do{
if(n.nodeType!==3)//筛选去除#text类型
a[i].push(n);
//con
Android+Jquery Mobile学习系列(9)-总结和代码分享
白糖_
JQuery Mobile
目录导航
经过一个多月的边学习边练手,学会了Android基于Web开发的毛皮,其实开发过程中用Android原生API不是很多,更多的是HTML/Javascript/Css。
个人觉得基于WebView的Jquery Mobile开发有以下优点:
1、对于刚从Java Web转型过来的同学非常适合,只要懂得HTML开发就可以上手做事。
2、jquerym
impala参考资料
dayutianfei
impala
记录一些有用的Impala资料
1. 入门资料
>>官网翻译:
http://my.oschina.net/weiqingbin/blog?catalog=423691
2. 实用进阶
>>代码&架构分析:
Impala/Hive现状分析与前景展望:http
JAVA 静态变量与非静态变量初始化顺序之新解
周凡杨
java静态非静态顺序
今天和同事争论一问题,关于静态变量与非静态变量的初始化顺序,谁先谁后,最终想整理出来!测试代码:
import java.util.Map;
public class T {
public static T t = new T();
private Map map = new HashMap();
public T(){
System.out.println(&quo
跳出iframe返回外层页面
g21121
iframe
在web开发过程中难免要用到iframe,但当连接超时或跳转到公共页面时就会出现超时页面显示在iframe中,这时我们就需要跳出这个iframe到达一个公共页面去。
首先跳转到一个中间页,这个页面用于判断是否在iframe中,在页面加载的过程中调用如下代码:
<script type="text/javascript">
//<!--
function
JAVA多线程监听JMS、MQ队列
510888780
java多线程
背景:消息队列中有非常多的消息需要处理,并且监听器onMessage()方法中的业务逻辑也相对比较复杂,为了加快队列消息的读取、处理速度。可以通过加快读取速度和加快处理速度来考虑。因此从这两个方面都使用多线程来处理。对于消息处理的业务处理逻辑用线程池来做。对于加快消息监听读取速度可以使用1.使用多个监听器监听一个队列;2.使用一个监听器开启多线程监听。
对于上面提到的方法2使用一个监听器开启多线
第一个SpringMvc例子
布衣凌宇
spring mvc
第一步:导入需要的包;
第二步:配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi=
我的spring学习笔记15-容器扩展点之PropertyOverrideConfigurer
aijuans
Spring3
PropertyOverrideConfigurer类似于PropertyPlaceholderConfigurer,但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。也就是说如果properties文件中没有某个bean属性的内容,那么将使用上下文(配置的xml文件)中相应定义的值。如果properties文件中有bean属性的内容,那么就用properties文件中的值来代替上下
通过XSD验证XML
antlove
xmlschemaxsdvalidationSchemaFactory
1. XmlValidation.java
package xml.validation;
import java.io.InputStream;
import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schem
文本流与字符集
百合不是茶
PrintWrite()的使用字符集名字 别名获取
文本数据的输入输出;
输入;数据流,缓冲流
输出;介绍向文本打印格式化的输出PrintWrite();
package 文本流;
import java.io.FileNotFound
ibatis模糊查询sqlmap-mapping-**.xml配置
bijian1013
ibatis
正常我们写ibatis的sqlmap-mapping-*.xml文件时,传入的参数都用##标识,如下所示:
<resultMap id="personInfo" class="com.bijian.study.dto.PersonDTO">
<res
java jvm常用命令工具——jdb命令(The Java Debugger)
bijian1013
javajvmjdb
用来对core文件和正在运行的Java进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和Sun studio里面所带的dbx非常相似,但 jdb是专门用来针对Java应用程序的。
现在应该说日常的开发中很少用到JDB了,因为现在的IDE已经帮我们封装好了,如使用ECLI
【Spring框架二】Spring常用注解之Component、Repository、Service和Controller注解
bit1129
controller
在Spring常用注解第一步部分【Spring框架一】Spring常用注解之Autowired和Resource注解(http://bit1129.iteye.com/blog/2114084)中介绍了Autowired和Resource两个注解的功能,它们用于将依赖根据名称或者类型进行自动的注入,这简化了在XML中,依赖注入部分的XML的编写,但是UserDao和UserService两个bea
cxf wsdl2java生成代码super出错,构造函数不匹配
bitray
super
由于过去对于soap协议的cxf接触的不是很多,所以遇到了也是迷糊了一会.后来经过查找资料才得以解决. 初始原因一般是由于jaxws2.2规范和jdk6及以上不兼容导致的.所以要强制降为jaxws2.1进行编译生成.我们需要少量的修改:
我们原来的代码
wsdl2java com.test.xxx -client http://.....
修改后的代
动态页面正文部分中文乱码排障一例
ronin47
公司网站一部分动态页面,早先使用apache+resin的架构运行,考虑到高并发访问下的响应性能问题,在前不久逐步开始用nginx替换掉了apache。 不过随后发现了一个问题,随意进入某一有分页的网页,第一页是正常的(因为静态化过了);点“下一页”,出来的页面两边正常,中间部分的标题、关键字等也正常,唯独每个标题下的正文无法正常显示。 因为有做过系统调整,所以第一反应就是新上
java-54- 调整数组顺序使奇数位于偶数前面
bylijinnan
java
import java.util.Arrays;
import java.util.Random;
import ljn.help.Helper;
public class OddBeforeEven {
/**
* Q 54 调整数组顺序使奇数位于偶数前面
* 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半
从100PV到1亿级PV网站架构演变
cfyme
网站架构
一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。 1:积累是必不可少的
架构师不是一天练成的。
1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTM
[宇宙时代]宇宙时代的GIS是什么?
comsci
Gis
我们都知道一个事实,在行星内部的时候,因为地理信息的坐标都是相对固定的,所以我们获取一组GIS数据之后,就可以存储到硬盘中,长久使用。。。但是,请注意,这种经验在宇宙时代是不能够被继续使用的
宇宙是一个高维时空
详解create database命令
czmmiao
database
完整命令
CREATE DATABASE mynewdb USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/m
几句不中听却不得不认可的话
datageek
1、人丑就该多读书。
2、你不快乐是因为:你可以像猪一样懒,却无法像只猪一样懒得心安理得。
3、如果你太在意别人的看法,那么你的生活将变成一件裤衩,别人放什么屁,你都得接着。
4、你的问题主要在于:读书不多而买书太多,读书太少又特爱思考,还他妈话痨。
5、与禽兽搏斗的三种结局:(1)、赢了,比禽兽还禽兽。(2)、输了,禽兽不如。(3)、平了,跟禽兽没两样。结论:选择正确的对手很重要。
6
1 14:00 PHP中的“syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”错误
dcj3sjt126com
PHP
原文地址:http://www.kafka0102.com/2010/08/281.html
因为需要,今天晚些在本机使用PHP做些测试,PHP脚本依赖了一堆我也不清楚做什么用的库。结果一跑起来,就报出类似下面的错误:“Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/kafka/test/
xcode6 Auto layout and size classes
dcj3sjt126com
ios
官方GUI
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Introduction/Introduction.html
iOS中使用自动布局(一)
http://www.cocoachina.com/ind
通过PreparedStatement批量执行sql语句【sql语句相同,值不同】
梦见x光
sql事务批量执行
比如说:我有一个List需要添加到数据库中,那么我该如何通过PreparedStatement来操作呢?
public void addCustomerByCommit(Connection conn , List<Customer> customerList)
{
String sql = "inseret into customer(id
程序员必知必会----linux常用命令之十【系统相关】
hanqunfeng
Linux常用命令
一.linux快捷键
Ctrl+C : 终止当前命令
Ctrl+S : 暂停屏幕输出
Ctrl+Q : 恢复屏幕输出
Ctrl+U : 删除当前行光标前的所有字符
Ctrl+Z : 挂起当前正在执行的进程
Ctrl+L : 清除终端屏幕,相当于clear
二.终端命令
clear : 清除终端屏幕
reset : 重置视窗,当屏幕编码混乱时使用
time com
NGINX
IXHONG
nginx
pcre 编译安装 nginx
conf/vhost/test.conf
upstream admin {
server 127.0.0.1:8080;
}
server {
listen 80;
&
设计模式--工厂模式
kerryg
设计模式
工厂方式模式分为三种:
1、普通工厂模式:建立一个工厂类,对实现了同一个接口的一些类进行实例的创建。
2、多个工厂方法的模式:就是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式就是提供多个工厂方法,分别创建对象。
3、静态工厂方法模式:就是将上面的多个工厂方法模式里的方法置为静态,
Spring InitializingBean/init-method和DisposableBean/destroy-method
mx_xiehd
javaspringbeanxml
1.initializingBean/init-method
实现org.springframework.beans.factory.InitializingBean接口允许一个bean在它的所有必须属性被BeanFactory设置后,来执行初始化的工作,InitialzingBean仅仅指定了一个方法。
通常InitializingBean接口的使用是能够被避免的,(不鼓励使用,因为没有必要
解决Centos下vim粘贴内容格式混乱问题
qindongliang1922
centosvim
有时候,我们在向vim打开的一个xml,或者任意文件中,拷贝粘贴的代码时,格式莫名其毛的就混乱了,然后自己一个个再重新,把格式排列好,非常耗时,而且很不爽,那么有没有办法避免呢? 答案是肯定的,设置下缩进格式就可以了,非常简单: 在用户的根目录下 直接vi ~/.vimrc文件 然后将set pastetoggle=<F9> 写入这个文件中,保存退出,重新登录,
netty大并发请求问题
tianzhihehe
netty
多线程并发使用同一个channel
java.nio.BufferOverflowException: null
at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:183) ~[na:1.7.0_60-ea]
at java.nio.ByteBuffer.put(ByteBuffer.java:832) ~[na:1.7.0_60-ea]
Hadoop NameNode单点问题解决方案之一 AvatarNode
wyz2009107220
NameNode
我们遇到的情况
Hadoop NameNode存在单点问题。这个问题会影响分布式平台24*7运行。先说说我们的情况吧。
我们的团队负责管理一个1200节点的集群(总大小12PB),目前是运行版本为Hadoop 0.20,transaction logs写入一个共享的NFS filer(注:NetApp NFS Filer)。
经常遇到需要中断服务的问题是给hadoop打补丁。 DataNod