barriers / 阅读 / 详情

怎么将二叉树中的每个节点的子女都找出来?

2023-07-28 07:41:19
共1条回复
wpBeta

1、画出该树 :如下图左边所示。然后根据树的二叉链表表示法表示存储结构如图右边所示:

注意这里的指针域为左边表示第一个孩子*firstchild,右边表示兄弟*nextsibling

nextsibling

2、接着进行树与二叉树的转换就可以得到结果了,核心思想:左子树放孩子,右子树放兄弟,则有如图所示的二叉树:

nextsibling

相关推荐

普通树变二叉树如何变?

转换如下: A / X X B- C- D | E / X F - G A / B C / E D / F G将树转换为二叉树  树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树:①在所有兄弟结点之间加一连线;②对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。 ③调整数的形状为正常二叉树即可
2023-07-26 12:50:293

js 中怎么获取某个标签后面的标签

用原生js的话可以用nextSibling,不过需要判断获取到的节点是不是标签元素,因为有可能你获取到的实际是2个标签之间的空格。例如:<span id="sp_1"></span><span id="sp_2"></span>用var span1=document.getElementById("sp_1");获取到第一个标签后,再var span2=span1.nextSibling;while(span2.nodeType != 1){ span2=span2.nextSibling;}这样循环知道找到nodeType为1的节点(即是下个标签)。
2023-07-26 12:50:461

javascript如何在div的后面添加一个其他的元素

vardoc=document.createElement("p");//创建P元素varstr=document.createTextNode("HelloWord");//创建文本节点doc.appendChild(str);//将文本节点加入P中varobjdiv=document.getElementById("nv");objdiv.appendChild(doc);//再将元素加到指定DIV中!你测试一下就行了!
2023-07-26 12:50:552

编写计算树中每一个结点的度,树用孩子-兄弟表示的二叉链表存储

int LeafCount_CSTree(CSTree T)//求孩子兄弟链表表示的树T的叶子数目{ if(!T->firstchild) return 1; //叶子结点 else { count=0; for(child=T->firstchild;child;child=child->nextsibling) count+=LeafCount_CSTree(child); return count; //各子树的叶子数之和 }}//LeafCount_CSTree
2023-07-26 12:51:052

数据结构 设一棵树T中边的集合为{(A,B),(A,C),(A,D),(B,E),(C,

.........A..../.....|........B.....C.....D...|.......|.......|...E......F......G,虚线是定位用的,看实线。
2023-07-26 12:51:154

怎么样通过js DOM获取一个节点的文本内容?

p1是btn按钮,p2的节点是文本类型的,肯定是不一样的文本节点类型。至于为什么,看看用下所有元素的父节点,然后 .childNodes 比如 把上面的HTML元素全部放入一个ID为parentID的div元素中使用for (var i = 0; i< document.getElementById("parentID").childNodes.length; i++) { //遍历该元素下所有子元素 p = document.getElementById("parentID").childNodes[i]; }
2023-07-26 12:51:472

求asp弹出浮动小窗口代码

不用多说了,看效果吧。。 专门为你放的哦,追点分 http://esxa.cn/eg/ 你可以先下载这个文件 http://esxa.cn/eg/ad.js 然后放在你要显示公告的页面相同目录,并写上<script language="JavaScript" type="text/javascript" src="ad.js"></script> 一切OK。。
2023-07-26 12:51:582

HTML网页表格可以上移一行下移一行的效果代码怎么写

function up(elem){elem.parentNode.insertBefore(elem,elem.previous());}function down(elem){elem.parentNode.insertBefore(elem,elem.next());}Node.prototype.previous=function(){var node=this.previousSibling;while(node.nodeType!=1&& node.previousSibling)node=node.previousSibling;return node;};Node.prototype.next=function(){var node=this.nextSibling;while(node.nodeType!=1&& node.nextSibling)node=node.nextSibling;return node;};
2023-07-26 12:52:181

js如何在指定id的div后面(注意是后面,不是里面啊!)插入一个新的div

jquery里用A.insertAfter(B)是把A插到B后面
2023-07-26 12:52:295

div里面怎么用iframe

<div class="xxx" ><iframe name="20" src="xxxxx.html" width="526" height="260" marginheight="0" marginwidth="0" scrolling="no" frameborder="no" align="middle"></iframe></div
2023-07-26 12:52:463

用css 如何控制英文网站中分类顺序是按照英文26字母顺序排序的

CSS没有办法的, 用JS,还是直接用开发语言做吧
2023-07-26 12:52:572

js 怎么在标签对里面的最前面插入元素

targetElement.parentNode.insertBefore( newElement, targetElement ) 让目标元素的父母元素调用 insertBefore() 方法, 将新元素插入到目标元素之前 。另外,在JavaScript中并没有 insertAfter() 方法(即插入目标函数之前),但可以自定义实现:function insertAfter(newElem,targetElem){ var parent = targetElem.parentNode; if (parent.lastChild === targetElem) { parent.appendChild( newElem ) ; } else { var nextElem = targetElem.nextSibling; parent.insertBefore(newElem,nextElem); }}其中 targetElement.parentNode为目标函数的父母元素;targetElem.nextSibling 为相对于目标函数的下一个元素节点。
2023-07-26 12:53:071

判断字符是否相等?

java 判断字符串相等的问题 你的s_warn赋值是"abc"吧?"abc" 属于字符串常量,它是存放在数据段里面的,如果还有个 s_warn1="abc",JAVA不会再在数据段里面再分配一个地址来存放“abc”,而是同样使用和s_warn一样的内存地址的“abc”,那么 s_warn1和s_warn就是的指向同一个内存地址拉,"abc" 不是没有地址,而是存的地方比较特殊罢啦。s_warn=="abc"当然是 true。 c语言中如何判断两个字符串相等 #include char s1[10],s2[10];... if(strcmp(s1,s2)==0) printf("两字符串相等 "); string.h 头文件中就有比较函数,可以用来比较是否相等 判断一个字符是否相等,该如何表达 一个字符相等?一个字符怎么相等? 你是指两个字符是不是相等吗? 判断字符串的话 s1.strcmp(s2)返回0则相等 如果是字符直接用==判断 java中如何判断输入的字符串是否与一个固定字符串相等 一般新手可能出现对比两个字符串的错误: 1,比较两个字符串内容的话,用a.equals(b)比较,其中a,b是两个字符串,用a==b的话比较的是a和b的内存地址。 2,如果一个字符串是变量,另一个字符串是常量的话,一定要把常量写在前面,变量写在后面(即括号内),这样写的原因只有一个,避免报空指针异常。如:a是常量字符串,b是变量字符串,则一定要写成a.equals(b).不能写成b.equals(a),否则如果b为null的话,绝对报空指针异常。 新手都需要注意这两点啊。 希望能够帮到你 祝你好运 java 判断字符串是否相等 java中判断字符串是否相等有两种方法:1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",那么a==b将返回true。这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象;再比如:String a=new String("abc"); String b=new String("abc");那么a==b将返回false,因为a和b指向不同的对象。2、用equals方法,该方法比较的是字符串的内容是否相同,比如:String a=new String("abc"); String b=new String("abc"); a.equals(b);将返回true。所以通常情况下,为了避免出现上述问题,判断字符串是否相等使用equals方法。 js判断字符串是否相等 一般使用双等来判断(==),如果还需要类型相同那么就用三等(===)。 说一下这两个的区别: == equality 等同,=== identity 恒等。 ==, 两边值类型不同的时候,要先进行类型转换,再比较。 ==,不做类型转换,类型不同的一定不等。 下面分别说明: 先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等: 1、如果类型不同,就[不相等] 2、如果两个都是数值,并且是同一个值,那么[相等]。 3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 4、如果两个值都是true,或者都是false,那么[相等]。 5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 6、如果两个值都是null,或者都是undefined,那么[相等]。 再说 ==,根据以下规则: 1、如果两个值类型相同,进行 === 比较。 2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较: a、如果一个是null、一个是undefined,那么[相等]。 b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。 d、任何其他组合,都[不相等]。 C++中判断两个字符串是否相等,怎么判断 string类型直接用==就能判断。char *用strcmp,如果结果是0表示相等。 在js中怎么判断两个字符串相等 js判断两字符串相等的确用双等号“==”。 至于你程序的问题建议你在前台debug调试一下,也可以通过alert()打印出来。同时注意浏览器的不同,比如nextSibling在ie和firefox里面可能不同
2023-07-26 12:53:351

给我一段html代码,点击文字后跳出一个层

<html><head><title>网页特效 隐藏层的打开关闭 酷爱电脑教学网</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head> <body bgcolor=#FFFFFF ><!--------------------------------><script language=javascript>ie4=(document.all)?true:false;ns4=(document.layers)?true:false; function toExit(){var args=toExit.arguments;var visible=args[0];if(ns4){theObj=eval("document.layers[""+args[1]+""]");if(theObj)theObj.visibility=visible;}else if(ie4){if(visible=="show")visible="visible";if(visible=="hide")visible="hidden";theObj=eval("document.all[""+args[1]+""]");if(theObj)theObj.style.visibility=visible;}} </script><div id=boysoft style="border-color:red;HEIGHT: 80px;WIDTH:200px; LEFT: 200px; POSITION: absolute; TOP: 150px; VISIBILITY: hidden; WIDTH: 180px; Z-INDEX: 1;"><table border=1 style="background-color:red;"><tr width=200><td width=200><form method=post action="?do=login" target="_main">用户名:<input type=text name=username size=20><br>密码:<input type=password name=pwd size=20><br><input type=submit value="登录"><input type=button onclick=window.location.href="zhuce.asp" value="注册"></form></td></tr></table></div><%if request("do")="login" then username=request("username") pwd=request("pwd")response.cookies("username")=usernameresponse.write "欢迎您" & request.cookies("username")else%><a href="javascript:toExit("show","boysoft")"><font color="#0000FF">登录</font></a><%end if%></body></html>我自己写的,没测试,你看下
2023-07-26 12:53:463

java XML解析详解

(I)Java通过DOM解析XML1>得到DOM解析器的工厂实例  DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();  得到javax.xml.parsers.DocumentBuilderFactory;类的实例就是我们要的解析器工厂  2>从DOM工厂获得DOM解析器  DocumentBuilder dombuilder=domfac.newDocumentBuilder();  通过javax.xml.parsers.DocumentBuilderFactory实例的静态方法newDocumentBuilder()得到DOM解析器  3>把要解析的XML文档转化为输入流,以便DOM解析器解析它  InputStream is=new FileInputStream("bin/library.xml");  InputStream是一个接口。4>解析XML文档的输入流,得到一个Document  Document doc=dombuilder.parse(is);  由XML文档的输入流得到一个org.w3c.dom.Document对象,以后的处理都是对Document对象进行的  5>得到XML文档的根节点  Element root=doc.getDocumentElement();  在DOM中只有根节点是一个org.w3c.dom.Element对象。  6>得到节点的子节点  NodeList books=root.getChildNodes();  for(int i=0;i<books.getLength();i++){ Node book=books.item(i);  }   这是用一个org.w3c.dom.NodeList接口来存放它所有子节点的,还有一种轮循子节点的方法,后面有介绍  7>取得节点的属性值  String email=book.getAttributes().getNamedItem("email").getNodeValue();  System.out.println(email);  注意,节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE  8>轮循子节点  for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()){      if(node.getNodeType()==Node.ELEMENT_NODE){       if(node.getNodeName().equals("name")){       String name=node.getNodeValue();        String name1=node.getFirstChild().getNodeValue();       ...        if(node.getNodeName().equals("price")){        String price=node.getFirstChild().getNodeValue();...Java通过SAX解析XML Simple API for XML(简称SAX)是个循序存取XML的解析器API。 一个实现SAX的解析器(也就是“SAX Parser”)以一个串流解析器的型式作用,拥有事件驱动API。由使用者定义回调函数,解析时,若发生事件的话会被调用。SAX事件包括:XML 文字 节点XML 元素 节点XML 处理指令XML 注释Java代码 <person> <user> <username>谢成志</username> <password>6626310xie</password> <sex>男</sex> <birthday>1988/11/28</birthday> <headpic> <pictitle>ermao</pictitle> <picurl>images/head1.jpg</picurl> </headpic> </user> </person> 此为下面即将解析度简单xml结构,并将其封装成一个User对象。////////////////////////////////////////////////////////////////////////////////////Java代码 <span style="font-family: courier new,courier; font-size: small;">package com.xcz.xml; import java.io.File; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import com.xcz.util.SaxUtil; public class Sax4XML { public static void main(String[] args) { try { //1.获取factory SAXParserFactory factory = SAXParserFactory.newInstance(); //2.获取parser SAXParser parser = factory.newSAXParser(); //3.获取解析时的监听器对象 SaxUtil su = new SaxUtil(); //4.开始解析 parser.parse(new File("src/user-params.xml"), su); System.out.println(su.getUser()); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } </span> ////////////////////////////////////////////////////////////////////////////////////Java代码 <span style="font-family: courier new,courier; font-size: small;">package com.xcz.util; import java.text.ParseException; import java.text.SimpleDateFormat; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import com.xcz.po.HeadPic; import com.xcz.po.User; /** * 定义xml解析时的监听类 * * 实现方式有很多,可以实现接口:ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler * 但我们常用的继承:DefaultHandler */ public class SaxUtil extends DefaultHandler { private User user; private HeadPic headPic; private String content; private SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); @Override public void characters(char[] ch, int start, int length) throws SAXException { content = new String(ch, start, length); } //当解析到文本开始时触发 @Override public void startDocument() throws SAXException { super.startDocument(); } //当解析到文本结束时触发 @Override public void endDocument() throws SAXException { super.endDocument(); } //当解析到元素开始时触发 @Override public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { if("user".equals(name)) { user = new User(); } if("headpic".equals(name)) { headPic = new HeadPic(); } } //当解析到元素结束时触发 @Override public void endElement(String uri, String localName, String name) throws SAXException { if("username".equals(name)) { user.setUsername(content); } if("password".equals(name)) { user.setPassword(content); } if("sex".equals(name)) { user.setSex(content); } if("birthday".equals(name)) { try { user.setBirthday(sdf.parse(content)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if("pictitle".equals(name)) { headPic.setPicTitle(content); } if("picurl".equals(name)) { headPic.setPicUrl(content); user.setHeadPic(headPic); } } public User getUser(){ return user; } }</span> [优点] (1).节约内存开销 SAX解析器在某些方面优于DOM风格解析器,因为SAX解析器的内存使用量一般远低于DOM解析器使用量。DOM解析器在任何处理开始之前,必须将xml以整棵树放在内存,所以DOM解析器的内存使用量完全根据输入资料的大小。相对来说,SAX解析器的内存内容,是只基于XML档案的最大深度(XML树的最大深度)和单一XML项目上XML属性储存的最大资料。 (2)解析速度快 因为SAX事件驱动的本质,处理文件通常会比DOM风格的解析器快。 [缺点] SAX事件驱动的模型对于XML解析很有用,但它确实有某些缺点。 某些种类的XML验证需要存取整份文件。例如,一个DTD IDREF属性需要文件内有项目使用指定字串当成DTD ID属性。要在SAX解析器内验证,必须追踪每个之前遇过的ID和IDREF属性,检查是否有任何相符。更甚者,一个IDREF找不到对应的ID,使用者只会在整份文件都解析完后才发现,若这种连结对于建立有效输出是重要的,那用在处理整份文件的时间只是浪费。
2023-07-26 12:53:531

javascript 改变数组的长度

因为myar1数组声明时未赋值。而你对input 绑定onclick事件。必须触发onclick事件才能将myar1赋值为["1","2","3"];不然,myar1就是个空数组。当你在输入框输入数字时,获取的值肯定是undefined。
2023-07-26 12:54:021

asp.net标签里的值js怎么获取

js获取em标签的值:比如有:<em class="title">Pacific Rim</em>js代码:var ems = document.querySelectorAll("em.title");for (var i = 0; i < ems.length; ++i) { if (ems[i].querySelector("a") === null) { var em = ems[i], text = jQuery(em).text(); var before = text[0] == " "; var after = text[text.length-1] == " "; text = text.trim(); while (em.nextSibling && em.nextSibling.className && em.nextSibling.className.indexOf("title") != -1) { var tmp = em; em = em.nextSibling; tmp.parentNode.removeChild(tmp); text += jQuery(em).text().trim(); ++i; } var link = text.replace(/[^a-z -d"]+/gi, "").replace(/s+/g, "+"); var innerHTML = "<a target="_blank" href="http://domain.com/?=" + link + "">" + text + "</a>"; innerHTML = before ? " " + innerHTML: innerHTML; innerHTML = after ? innerHTML + " " : innerHTML; ems[i].innerHTML = innerHTML; }}
2023-07-26 12:54:092

计算孩子兄弟表示法表示的二叉树的高度

如下#define MAX(a,b) ( a > b ? a : b )typedef struct BitNode{BitNode *left;BitNode *right;Element data;}BitNode, *pBitTree;int getBitTreeDeep( pBitTree root ){if( !root )return 0;return ( MAX( getBitTreeDeep( root->left ) , getBitTreeDeep( root->right ) ) + 1 );}
2023-07-26 12:54:211

js 文字和标签同级时,如何只改变文字内容

nextSibling 属性可返回某个元素之后紧跟的元素(处于同一树层级中)。   如果无此节点,则属性返回 null。   与其相反的是previousSibling   语法:nodeObject.nextSibling<div id="div1" onclick="onclk(this)"> </div><div class="d1"> </div><div id="div1" onclick="onclk(this)"> </div><div class="d2"> </div><script>function onclk(nowEle){ var nextEle = nowEle.nextSibling; alert(nextEle.className);}
2023-07-26 12:54:291

js如何获取ModalAndView中的对象

<div id="mydiv"><span>abc</span></div><div id="mydiv2"><span><a>abc</a></span></div><TABLE><TR><TD>aaa</TD><TD>bbb</TD></TR><TR><TD>ccc</TD><TD>ddd</TD></TR></TABLE><SCRIPT LANGUAGE="JavaScript"><!--// 通过id获取div元素var div = document.getElementById("mydiv");// 获取div下的span元素var span = div.firstChild;// 获取span元素中的文本var text = span.innerText;//alert(text);// 获取div下的htmlvar html = div.innerHTML;//alert(html);// 处理div2// 获取mydiv2>span>a>下的文本var div2 = document.getElementById("mydiv2");// 得到mydvi2>span>a元素var a = div2.firstChild.firstChild;text = a.innerText;//alert(text);// 处理表格// 通过标签名获取table元素var table = document.getElementsByTagName("table")[0];// 下面获取bbb// firstChild:就是第一个子元素,table.firstChild.firstChild.firstChild就是第一个TR下的第一个TD。// nextSibling:就是下一个兄弟节点,兄弟节点就是处在同一级上的节点,比如aaa,bbb这2个所在的节点是同一级,所以他们是兄弟节点。// table.firstChild.firstChild.firstChild:得到第一个TR下的第一个TD。// table.firstChild.firstChild.firstChild.nextSibling:就是第一个TR下的第一个TD的兄弟节点,就是bbb所在的标签。// 然后用innerText取出元素的文本值。要取出子标签的html,则用innerHTML// 如果得到了第一个TR下的第2个TD,怎么得到第一个TD呢?可以用previousSibling(上一个兄弟节点)// 如果得到了第一个TR下的第2个TD,怎么得到它的父元素TR呢?用parent(父节点)// ps:当然,这个你可以用table.rows[0].cells[1]来获取bbb的内容。这个是针对table的。// 但是上面的针对所有的dom元素都有效。text = table.firstChild.firstChild.firstChild.nextSibling.innerText;//alert(text);alert(text);//--></SCRIPT>
2023-07-26 12:54:381

线索二叉树的插入和删除

***** *****我这有个线索二叉树的例子: ***** *****首先需要定义线索二叉树,定义如下: //线索二叉树结点类型存储结构体TBSTree2.h template<class T> class TBSTree; template<class T> class ITBSTree; template<class T> struct THNode {public: int lflag,rflag;//标志域 THNode<T> *left;//第一个孩子结点指针域 THNode<T> *right;//下一个兄弟结点指针域 T data;//数据域 friend class TBSTree<T>;//线索二叉树类为友元 friend class ITBSTree<T>;//派生类 //构造函数 THNode():left(NULL),right(NULL),lflag(0),rflag(0){ } THNode(int la,int ra,T value,THNode<T> *fc=NULL, THNode<T> *ns=NULL):data(value),left(fc), right(ns){lflag=la;rflag=ra;} //访问指针域的成员函数 THNode<T>* &FirstChild() {return left;} THNode<T>* &NextSibling() {return right;} }; //线索二叉树类 template<class T> class TBSTree {protected: THNode<T> *root;//根结点指针 THNode<T> *curr;//当前结点指针 int nextC; int priorC; public: //构造函数与析构函数 TBSTree(){root=curr=NULL;} TBSTree(THNode<T> *&tree) {root=tree; curr=root; if(tree==NULL) {nextC=1;priorC=1;} else {nextC=0;priorC=0;} } //纯虚函数 virtual void First()=0; virtual void Last()=0; //数据检索与修改成员函数 T &Data(); }; //线索二叉树类的实现 template<class T> T &TBSTree<T>::Data() {if(root==NULL) {cout<<"二叉树空! ";exit(1);} return curr->data; } //由结点构造线索二叉树的类外一般函数 template<class T> THNode<T> *GetTreeNode(T item,THNode<T> *le=NULL, THNode<T> *ri=NULL,int lf=0,int rf=0) {THNode<T> *p=new THNode<T>; p->data=item;p->left=le;p->right=ri; p->lflag=lf;p->rflag=rf; if(p==NULL) {cerr<<"内存分配失败! ";exit(1);} return p; } //创建特定线索二叉树的类外一般函数 template<class T> THNode<T> *MakeCharT(THNode<T> *&root,int num) {THNode<T> *b,*c,*d,*e,*f,*g,*null=NULL; if(num==1) {e=GetTreeNode("R"); f=GetTreeNode("W"); d=GetTreeNode("P",e,f); g=GetTreeNode("Q"); b=GetTreeNode("N",d,g); c=GetTreeNode("O"); root=GetTreeNode("M",b,c); } else { g=GetTreeNode("G"); d=GetTreeNode("D",null,g); b=GetTreeNode("B",d); e=GetTreeNode("E"); f=GetTreeNode("F"); c=GetTreeNode("C",e,f); root=GetTreeNode("A",b,c); } return root; } ***** *****接着是测试程序,代码如下: //线索二叉树类相关操作的测试TBSTree2M.cpp #include<iostream.h> #include<iomanip.h> #include<stdlib.h> #include<conio.h> #include "TBSTree2.h" #include "ITBSTree2.h" void main() {cout<<"TBSTree2M.cpp运行结果: "; THNode<char> *q,*p; q=MakeCharT(q,2); ITBSTree<char> t(q); t.CreatInThread(); cout<<"二叉树的中序正向遍历序列为: "; t.First(); cout<<" 二叉树的中序反向遍历序列为: "; t.Last(); p=MakeCharT(p,1); ITBSTree<char> d(p); d.CreatInThread(); cout<<" 二叉树的中序正向遍历序列为: "; d.First(); cout<<" 二叉树的中序反向遍历序列为: "; d.Last(); cin.get(); } ***** *****以下是程序运行结果,自己试试吧,先跑起来,然后慢慢看懂它: TBSTree2M.cpp运行结果: 二叉树的中序正向遍历序列为: D G B A E C F 二叉树的中序反向遍历序列为: F C E A B G D 二叉树的中序正向遍历序列为: R P W N Q M O 二叉树的中序反向遍历咦?悬赏分没有吗?
2023-07-26 12:54:571

Javascript中DOM运行时的一个问题???

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DOM adding</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <script type = "text/javascript"> <!-- function makeNode(str){ var newParagraph = document.createElement("p"); var newText = document.createTextNode(str); newParagraph.appendChild(newText); return newParagraph; } function appendBefore(nodeId,str){ var node = document.getElementById(nodeId); var newNode = makeNode(str); if(node.parentNode) node.parentNode.insertBefore(newNode,node); } function insertWidthin(nodeId,str){ var node = document.getElementById(nodeId); var newNode = makeNode(str); node.appendChild(newNode); } function appendAfter(nodeId,str){ var node = document.getElementById(nodeId); var newNode = makeNode(str); //if(){ if(node.nextSibling) { node.parentNode.insertBefore(newNode,node.nextSibling); } else { node.parentNode.appendChild(newNode); } } //--> </script> </head> <body> <h1>DOM Insert and Append</h1> <!--script> alert("body Ok!!"); </script--> <hr> <div style ="background-color:#66ff00"> <div id="innerDiv" style="background-color:#ffcc00;"></div> </div> <hr> <form id ="form1" name = "form1" action ="#" method ="get"> <input type ="text" id ="field1" name = "field1"> <input type ="button" value="Before" onclick="appendBefore("innerDiv",document.form1.field1.value);"> <input type ="button" value="Middle" onclick="insertWidthin("innerDiv",document.form1.field1.value);"> <input type ="button" value="After" onclick="appendAfter("innerDiv",document.form1.field1.value);"> </form> </body> </html>
2023-07-26 12:55:042

我这样写在IE可以获取焦点,在chrome和火狐浏览器上获取不到焦点。问题出在哪里?

这是属性兼容问题导致的错误。在IE和FireFox浏览器中,DOM的nextSibling方法的使用存在部分差异:1. 在FireFox中,html标记中空行和换行会被当做节点来处理,所以会出现startNode.nextSibling取不到目标节点的情况,得到的元素反而是undefined或是nodeType为text的节点;2.解决方法是:判断startNode.nextSibling的nodeType类型: if(startNode.nextSibling.nodeType==3){brotherNode=startNode.nextSibling.nextSibling; //如果浏览器是FireFox}else{brotherNode=startNode.nextSibling; //如果浏览器是IE}
2023-07-26 12:55:121

如何在Dreamweaver中添加时间弹出框

Dreamweaver经典技巧 http://webdesign.chinaitlab.com/dwjq/392785.html
2023-07-26 12:55:221

js内置的 for..in属性???

for (eee in a){ document.write(eee+"--"); document.write(a[eee]+"<br>"); } 这种写法代表遍历所有的a属性,eee只是一个供你使用的循环变量而已。
2023-07-26 12:55:322

编写算法,对一棵二叉链表表示的二叉树统计其叶子个数

1)由于二叉树本就是递归结构,所以可以用递归的思想:二叉树叶子个数等于左子树叶子个数+右子树叶子个数,当遇到孩子节点是空指针的时候就返回1,否则返回该子树的叶节点数。具体实现的话,可以将递归的二叉树后续遍历算法的开头添加一句话,即可。2)后续变量二叉树的非递归算法,只需要记录一个count变量即可,即每次遇到叶子节点,就将count累加。主要思想就是,后续变量二叉树。
2023-07-26 12:55:423

制作网页时表格排列的问题

若干表格.......没有实际运行环境...没法说试试excel组件
2023-07-26 12:55:502

struts中jquery如何实现购物车中多个商品数量的增减

现在还没看到图~~~
2023-07-26 12:56:275

怎么样通过js DOM获取一个节点的文本内容?

p1是btn按钮,p2的节点是文本类型的,肯定是不一样的文本节点类型。至于为什么,看看用下所有元素的父节点,然后 .childNodes 比如 把上面的HTML元素全部放入一个ID为parentID的div元素中使用for (var i = 0; i< document.getElementById("parentID").childNodes.length; i++) { //遍历该元素下所有子元素 p = document.getElementById("parentID").childNodes[i]; }
2023-07-26 12:56:542

如何使用javascript自动添加选择题选项前面的abcd

<!-- 写了个这样的--><html><body onload="load()"><div onclick="youcheck()"><input type="Radio" name="answer" ></input><input type="Radio" name="answer" ></input><input type="Radio" name="answer" ></input><input type="Radio" name="answer" ></input></div><div id="show"></div><script>var arr = ["A", "B", "C", "D"];function load() {var check = document.getElementsByTagName("input");for (var i = 0; i < check.length; i++) {check[i].value = arr[i];if (check[i].nextSibling.nodeType == 1) {var el = check[i].nextSibling.nextSibling;} else {el = check[i].nextSibling;}el.nodeValue = arr[i];}}function youcheck() {var check = document.getElementsByTagName("input");for (var i = 0; i < check.length; i++) {if (check[i].checked) {document.getElementById("show").innerHTML=check[i].value;}}}</script></body></html>
2023-07-26 12:57:011

C++ 如何读取和创建XML?

我最近使用了一个第三方的XML库,TinyXml,开源代码。下面是我使用XML的代码:#include <string>#include <vector>using namespace std;typedef struct{ string User; string ID; string SN; string Date; int Active;}UserType;int TForm1::CreateLicenseFile(char *FileName, vector<UserType> &User){ char Buf[256]; TiXmlElement* rootElement1; TiXmlElement* rootElement2; TiXmlDocument doc; TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "GB2312", "" ); doc.LinkEndChild(decl); rootElement1 = new TiXmlElement("LicenseManager"); doc.LinkEndChild(rootElement1); for(vector<UserType>::iterator iter=User.begin();iter!=User.end();++iter) { if(iter->Active==0) continue; rootElement2 = new TiXmlElement("License"); rootElement1->LinkEndChild(rootElement2); rootElement2->SetAttribute("User", iter->User.c_str()); rootElement2->SetAttribute("ID", iter->ID.c_str()); rootElement2->SetAttribute("SN", iter->SN.c_str()); rootElement2->SetAttribute("Date", iter->Date.c_str()); } if(!doc.SaveFile(FileName)) return 0; return 1;}int TForm1::LoadLicenseFile(char *FileName, vector<UserType> &User){ TiXmlElement* rootElement1; TiXmlElement* rootElement2; TiXmlDocument doc; User.clear(); if(!doc.LoadFile(FileName)) return 0; rootElement1 = doc.RootElement(); rootElement2=rootElement1->FirstChildElement("License"); while(rootElement2!=NULL) { UserType item; item.User=rootElement2->Attribute("User"); item.ID=rootElement2->Attribute("ID"); item.SN=rootElement2->Attribute("SN"); item.Date=rootElement2->Attribute("Date"); item.Active=1; User.push_back(item); rootElement2=rootElement2->NextSiblingElement(); } return 1;}生成的XML文件的内容:<?xml version="1.0" encoding="GB2312" ?><LicenseManager> <License User="Sun" ID="04b59c3c" SN="ca211bd3ca9dc272f7663ab1f3b3c29b" Date="2012-08-19 14:31:20.343" /> <License User="ShowTime" ID="04b58cdc" SN="1a1a41eb46d8629243a3d7dea43a426a" Date="2012-08-19 14:31:11.031" /> <License User="TEST-PC" ID="04b58c3c" SN="9a28ab35a08b90dd6a7855781eb79335" Date="2012-06-28 09:26:19.759" /> <License User="ISLAND-BEB1AEDD" ID="7854efb8" SN="eedf940638a5db01e971bd50a93b54cf" Date="2012-08-19 14:30:33.968" /></LicenseManager>
2023-07-26 12:57:101

javascript 如何一次删除table的多个tr?

此方法需要在后台删除返回true时调用,把后台已经删除的数据隐藏掉,下次向后台查询时这些数据也不会再次出现!var a = [];//需要删除的行的index$("input[name="del"]:checked").each(function() { // 遍历选中的checkboxn = $(this).parents("tr").index(); // 获取checkbox所在行的顺序a.push(n);});for(var i = 0; i < a.length; i++) {$("#table_id tr").eq(a[i]+1).attr("hidden","hidden");}
2023-07-26 12:57:182

在js中怎么判断两个字符串相等

s中字符串比较值用==不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等var str1="a";var str2="b";var str1="a";if(str1 == str2){}s中字符串比较数据类型和值用======如果类型不同,其结果就是不等var str2="1";var str2="b";var str1="a";if(str1 === str2){}
2023-07-26 12:57:348

我建了一个XML文件,想用变量对它连续赋值,又不能互相掩盖

//程序目录下是否存在user。xml文件,存在则加载,不存在则新建 XmlDocument xmlDoc = new XmlDocument(); if (!File.Exists(Application.StartupPath + "\user.xml")) { //if (!Directory.Exists(Application.StartupPath)) //{ // Directory.CreateDirectory(Application.StartupPath); //} //文件不存在 XmlNode xmlNode = xmlDoc.CreateXmlDeclaration("1.0", "gb2312", null); xmlDoc.AppendChild(xmlNode); XmlElement xmlRoot = xmlDoc.CreateElement("root"); xmlDoc.AppendChild(xmlRoot); XmlElement xmlIP = xmlDoc.CreateElement("ip"); XmlElement xmlUser = xmlDoc.CreateElement("user"); XmlElement xmlID = xmlDoc.CreateElement("id"); XmlElement xmlPwd = xmlDoc.CreateElement("pwd"); XmlElement xmlIv = xmlDoc.CreateElement("xml"); xmlIP.InnerText = tbIPAddress.Text.ToString() + "," + tbPort.Text; xmlID.InnerText = cmbUserName.Text; if (chkMemory.Checked) { xmlPwd.InnerText = Convert.ToBase64String(cipherText); xmlIv.InnerText = Convert.ToBase64String(enc.IV); } xmlUser.AppendChild(xmlID); xmlUser.AppendChild(xmlPwd); xmlUser.AppendChild(xmlIv); xmlRoot.AppendChild(xmlIP); xmlRoot.AppendChild(xmlUser); //添加上一次的登录用户 XmlElement xmlPreName = xmlDoc.CreateElement("previous"); xmlPreName.InnerText = cmbUserName.Text; xmlRoot.AppendChild(xmlPreName); xmlDoc.Save(Application.StartupPath + "\user.xml"); } else { //文件存在 xmlDoc.Load(Application.StartupPath + "\user.xml"); //更新上一次的登录用户 XmlNode xmlPreName = xmlDoc.DocumentElement.SelectSingleNode("previous"); xmlPreName.InnerText = cmbUserName.Text; //更新服务器ip地址 XmlNode ipNode = xmlDoc.DocumentElement.SelectSingleNode("ip"); if (ipNode.Name == "ip" && ipNode.InnerText != tbIPAddress.Text) { ipNode.InnerText = tbIPAddress.Text + "," + tbPort.Text; } //检查用户名是否已存在 XmlNodeList userNodes = xmlDoc.DocumentElement.SelectNodes("user"); foreach (XmlNode userNode in userNodes) { XmlNodeList idNodes = userNode.ChildNodes; foreach (XmlNode idNode in idNodes) { if (idNode.InnerText == cmbUserName.Text) { if (chkMemory.Checked) { idNode.NextSibling.InnerText = Convert.ToBase64String(cipherText); } else { idNode.NextSibling.InnerText = ""; } idNode.NextSibling.NextSibling.InnerText = Convert.ToBase64String(enc.IV); xmlDoc.Save(Application.StartupPath + "\user.xml"); return; } } } if (userNodes.Count > 5) { //保存的用户不超过6个 xmlDoc.DocumentElement.RemoveChild(userNodes[0]); } //若用户名不存在往xml文件中插入用户信息 XmlNode root = xmlDoc.DocumentElement; XmlElement user = xmlDoc.CreateElement("user"); XmlElement id = xmlDoc.CreateElement("id"); XmlElement pwd = xmlDoc.CreateElement("pwd"); XmlElement iv = xmlDoc.CreateElement("iv"); id.InnerText = cmbUserName.Text; if (chkMemory.Checked) { pwd.InnerText = Convert.ToBase64String(cipherText); iv.InnerText = Convert.ToBase64String(enc.IV); } else { pwd.InnerText = ""; } user.AppendChild(id); user.AppendChild(pwd); user.AppendChild(iv); root.AppendChild(user); xmlDoc.Save(Application.StartupPath + "\user.xml"); }
2023-07-26 12:57:491

如何取到网页中checkbox 中的文字

JS代码实现调用复选框后面的文字【实例描述】在HTML中,复选框和复选框后面的文字并不是一体的,不能通过复选框的“value”属性获取后面的文字。本例学习如何调用复选框后面的文字。【实例代码】<html xmlns="http //www w3 org/1999/xhtml" ><head><title>标题页-学无忧 </title></head><body><form name="frm"><INPUT id=checkList type=checkbox name=checkList onclick="window.alert(nextSibling.innerText);"><LABEL for=checkList>这是后面的文字</LABEL></form></body></html>
2023-07-26 12:57:561

js点击多个checkbox获取相应span值并且自动相加显示在另一个span里面怎么写啊,在线急等!!!

既然是多个checkbox,干嘛获取span的值,把checkbox的value设置为和span相同的值,然后遍历checkbox选中的值进行相加,赋值给要显示的span就行啦~遍历选中checkbox代码,获取总和~$("input:checkbox[name="test"]:checked").each(function() { sum+=parseInt($(this).val());});然后sum赋值给span就好啦~
2023-07-26 12:58:042

线索二叉树里,第一个结点和最后一个结点,他们的前驱和后继线索分别

/*二叉树的二叉线索存储表示*/typedef enum PointerTag{Link,Thread};//Link==0:指针; Thread==1:线索typedef struct CTNode{ int data; struct CTNode *firstchild; struct CTNode *nextsibling; PointerTag LTag,RTag;}CTNode,*CTree;CTree pre=NULL;void InThreading(CTree p) /*线索化*/{if(p){InThreading(p->firstchild);// 左子树线索化if(!p->firstchild ) /*前驱线索*/{p->LTag =Thread;p->firstchild =pre;}if(!pre->nextsibling ) /*后继线索*/{pre->RTag =Thread;pre->nextsibling =p;}pre=p;//保持pre指向pInThreading(p->nextsibling );//右子树线索化}}CTree InOrderThreading(CTree Thrt,CTree ct){//中序遍历二叉树ct,并将其中序线索化,Thrt指向头结点Thrt=(CTree)malloc(sizeof(CTNode));if(!Thrt)exit(0);Thrt->LTag =Link;//建立头结点Thrt->RTag =Thread;Thrt->nextsibling =Thrt;//右指针回指if(!ct)Thrt->firstchild =Thrt;else{Thrt->firstchild =ct;pre=Thrt;InThreading(ct);//中序遍历进行中序遍历线索化pre->nextsibling =Thrt;//最后一个结点线索化pre->RTag =Thread;(Thrt)->nextsibling =pre;}return Thrt;}int print(int e){//输出结点printf("%3d",e);return 1;}/*中序遍历线索化二叉树*/int InOrderTraverse(CTree ct,int(*visit)(int e))/*中序遍历线索化二叉树*/{//ct指向头结点,头结点的做指针firstchild指向根结点,中序遍历二叉树CTree p;p=ct->firstchild ;//p指向根结点while(p!=ct)//空树或遍历结束时,p==ct{while(p->LTag ==Link)p=p->firstchild ;if(!visit(p->data )) return 0; //打印while(p->RTag ==Thread&&p->nextsibling !=ct){p=p->nextsibling ;visit(p->data); //访问后继结点}p=p->nextsibling ;}return 1;}
2023-07-26 12:58:241

JavaScript中如何通过一个元素去查找该元素的子元素节点

在Javascript中,可以通过 children 来获取所有子节点。children只返回HTML节点,甚至不返回文本节点,虽然不是标准的DOM属性,但是得到了几乎所有浏览器的支持。语法: nodeObject.children其中,nodeObject 为节点对象(元素节点),返回值为所有子节点的集合(数组)。注意:在IE中,children包含注释节点。(转自:http://www.itxueyuan.org/view/6349.html)
2023-07-26 12:58:326

求网易一种CSS链接弹出窗口特效

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>页面内的超级酷浮动窗口</title><style type="text/css"><!--a:visited{text-decoration:none;color:slategray;}a:hover{text-decoration:underline;color:slategray;}a:link{text-decoration:none;color:slategray;}--></style><script language=JScript><!--//可以打包为js文件;var x0=0,y0=0,x1=0,y1=0;var offx=6,offy=6;var moveable=false;var hover="orange",normal="slategray";//color;var index=10000;//z-index;//开始拖动;function startDrag(obj){ if(event.button==1) { //锁定标题栏; obj.setCapture(); //定义对象; var win = obj.parentNode; var sha = win.nextSibling; //记录鼠标和层位置; x0 = event.clientX; y0 = event.clientY; x1 = parseInt(win.style.left); y1 = parseInt(win.style.top); //记录颜色; normal = obj.style.backgroundColor; //改变风格; obj.style.backgroundColor = hover; win.style.borderColor = hover; obj.nextSibling.style.color = hover; sha.style.left = x1 + offx; sha.style.top = y1 + offy; moveable = true; }}//拖动;function drag(obj){ if(moveable) { var win = obj.parentNode; var sha = win.nextSibling; win.style.left = x1 + event.clientX - x0; win.style.top = y1 + event.clientY - y0; sha.style.left = parseInt(win.style.left) + offx; sha.style.top = parseInt(win.style.top) + offy; }}//停止拖动;function stopDrag(obj){ if(moveable) { var win = obj.parentNode; var sha = win.nextSibling; var msg = obj.nextSibling; win.style.borderColor = normal; obj.style.backgroundColor = normal; msg.style.color = normal; sha.style.left = obj.parentNode.style.left; sha.style.top = obj.parentNode.style.top; obj.releaseCapture(); moveable = false; }}//获得焦点;function getFocus(obj){ if(obj.style.zIndex!=index) { index = index + 2; var idx = index; obj.style.zIndex=idx; obj.nextSibling.style.zIndex=idx-1; }}//最小化;function min(obj){ var win = obj.parentNode.parentNode; var sha = win.nextSibling; var tit = obj.parentNode; var msg = tit.nextSibling; var flg = msg.style.display=="none"; if(flg) { win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2; sha.style.height = win.style.height; msg.style.display = "block"; obj.innerHTML = "0"; } else { win.style.height = parseInt(tit.style.height) + 2*2; sha.style.height = win.style.height; obj.innerHTML = "2"; msg.style.display = "none"; }}//关闭;function cls(obj){ var win = obj.parentNode.parentNode; var sha = win.nextSibling; win.style.visibility = "hidden"; sha.style.visibility = "hidden";}//创建一个对象;function xWin(id,w,h,l,t,tit,msg){ index = index+2; this.id = id; this.width = w; this.height = h; this.left = l; this.top = t; this.zIndex = index; this.title = tit; this.message = msg; this.obj = null; this.bulid = bulid; this.bulid();}//初始化;function bulid(){ var str = "" + "<div id=xMsg" + this.id + " " + "style="" + "z-index:" + this.zIndex + ";" + "width:" + this.width + ";" + "height:" + this.height + ";" + "left:" + this.left + ";" + "top:" + this.top + ";" + "background-color:" + normal + ";" + "color:" + normal + ";" + "font-size:10px;" + "font-family:Verdana;" + "position:absolute;" + "cursor:default;" + "border:2px solid " + normal + ";" + "" " + "onmousedown="getFocus(this)">" + "<div " + "style="" + "background-color:" + normal + ";" + "width:" + (this.width-2*2) + ";" + "height:20;" + "color:white;" + "" " + "onmousedown="startDrag(this)" " + "onmouseup="stopDrag(this)" " + "onmousemove="drag(this)" " + "ondblclick="min(this.childNodes[1])"" + ">" + "<span style="width:" + (this.width-2*12-4) + ";padding-left:3px;">" + this.title + "</span>" + "<span style="width:12;border-width:0px;color:white;font-family:webdings;" onclick="min(this)">0</span>" + "<span style="width:12;border-width:0px;color:white;font-family:webdings;" onclick="cls(this)">r</span>" + "</div>" + "<div style="" + "width:100%;" + "height:" + (this.height-20-4) + ";" + "background-color:white;" + "line-height:14px;" + "word-break:break-all;" + "padding:3px;" + "">" + this.message + "</div>" + "</div>" + "<div style="" + "width:" + this.width + ";" + "height:" + this.height + ";" + "top:" + this.top + ";" + "left:" + this.left + ";" + "z-index:" + (this.zIndex-1) + ";" + "position:absolute;" + "background-color:black;" + "filter:alpha(opacity=40);" + "">by wildwind</div>"; document.body.insertAdjacentHTML("beforeEnd",str);}//--></script><script language="JScript"><!--function initialize(){ var a = new xWin("1",160,200,200,200,"Message","xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13"); var b = new xWin("2",240,200,100,100,"Wildwind"s Msgbox","Welcome to visited my personal website:<br><a href=http://www14.brinkster.com/wildcity target=_blank>http://wildcity.126.com</a><br>and u can also sign my guestbook at:<br><a href=http://www14.brinkster.com/wildcity/gbook target=_blank>http://wildcity.126.com/gbook</a><br><br>thx!!! =)..."); var c = new xWin("3",200,160,250,50,"Copyright","Copyright by <a href="mailto:wildwind_zz@21cn.com">Wildwind</a>!");}window.onload = initialize;//--></script></head><body onselectstart="return false" oncontextmenu="return false" scroll="no"></body></html>或者<html><head><title>用层模拟的小窗口(可拖动展合)</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--body{font-size:12px;}a:visited{text-decoration:none;color:slategray;}a:hover{text-decoration:underline;color:slategray;}a:link{text-decoration:none;color:slategray;}--></style><script language=JScript><!--//可以打包为js文件;var x0=0,y0=0,x1=0,y1=0;var offx=6,offy=6;var moveable=false;var hover="orange",normal="#336699";//color;var index=10000;//z-index;//开始拖动;function startDrag(obj){ if(event.button==1) { //锁定标题栏; obj.setCapture(); //定义对象; var win = obj.parentNode; var sha = win.nextSibling; //记录鼠标和层位置; x0 = event.clientX; y0 = event.clientY; x1 = parseInt(win.style.left); y1 = parseInt(win.style.top); //记录颜色; normal = obj.style.backgroundColor; //改变风格; obj.style.backgroundColor = hover; win.style.borderColor = hover; obj.nextSibling.style.color = hover; sha.style.left = x1 + offx; sha.style.top = y1 + offy; moveable = true; }}//拖动;function drag(obj){ if(moveable) { var win = obj.parentNode; var sha = win.nextSibling; win.style.left = x1 + event.clientX - x0; win.style.top = y1 + event.clientY - y0; sha.style.left = parseInt(win.style.left) + offx; sha.style.top = parseInt(win.style.top) + offy; }}//停止拖动;function stopDrag(obj){ if(moveable) { var win = obj.parentNode; var sha = win.nextSibling; var msg = obj.nextSibling; win.style.borderColor = normal; obj.style.backgroundColor = normal; msg.style.color = normal; sha.style.left = obj.parentNode.style.left; sha.style.top = obj.parentNode.style.top; obj.releaseCapture(); moveable = false; }}//获得焦点;function getFocus(obj){ if(obj.style.zIndex!=index) { index = index + 2; var idx = index; obj.style.zIndex=idx; obj.nextSibling.style.zIndex=idx-1; }}//最小化;function min(obj){ var win = obj.parentNode.parentNode; var sha = win.nextSibling; var tit = obj.parentNode; var msg = tit.nextSibling; var flg = msg.style.display=="none"; if(flg) { win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2; sha.style.height = win.style.height; msg.style.display = "block"; obj.innerHTML = "0"; } else { win.style.height = parseInt(tit.style.height) + 2*2; sha.style.height = win.style.height; obj.innerHTML = "2"; msg.style.display = "none"; }}//创建一个对象;function xWin(id,w,h,l,t,tit,msg){ index = index+2; this.id = id; this.width = w; this.height = h; this.left = l; this.top = t; this.zIndex = index; this.title = tit; this.message = msg; this.obj = null; this.bulid = bulid; this.bulid();}//初始化;function bulid(){ var str = "" + "<div id=xMsg" + this.id + " " + "style="" + "z-index:" + this.zIndex + ";" + "width:" + this.width + ";" + "height:" + this.height + ";" + "left:" + this.left + ";" + "top:" + this.top + ";" + "background-color:" + normal + ";" + "color:" + normal + ";" + "font-size:8pt;" + "font-family:Tahoma;" + "position:absolute;" + "cursor:default;" + "border:2px solid " + normal + ";" + "" " + "onmousedown="getFocus(this)">" + "<div " + "style="" + "background-color:" + normal + ";" + "width:" + (this.width-2*2) + ";" + "height:20;" + "color:white;" + "" " + "onmousedown="startDrag(this)" " + "onmouseup="stopDrag(this)" " + "onmousemove="drag(this)" " + "ondblclick="min(this.childNodes[1])"" + ">" + "<span style="width:" + (this.width-2*12-4) + ";padding-left:3px;">" + this.title + "</span>" + "<span style="width:12;border-width:0px;color:white;font-family:webdings;" onclick="min(this)">0</span>" + "<span style="width:12;border-width:0px;color:white;font-family:webdings;" onclick="ShowHide(""+this.id+"",null)">r</span>" + "</div>" + "<div style="" + "width:100%;" + "height:" + (this.height-20-4) + ";" + "background-color:white;" + "line-height:14px;" + "word-break:break-all;" + "padding:3px;" + "">" + this.message + "</div>" + "</div>" + "<div id=xMsg" + this.id + "bg style="" + "width:" + this.width + ";" + "height:" + this.height + ";" + "top:" + this.top + ";" + "left:" + this.left + ";" + "z-index:" + (this.zIndex-1) + ";" + "position:absolute;" + "background-color:black;" + "filter:alpha(opacity=40);" + ""></div>"; document.body.insertAdjacentHTML("beforeEnd",str);}//显示隐藏窗口function ShowHide(id,dis){ var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis document.getElementById("xMsg"+id).style.display = bdisplay; document.getElementById("xMsg"+id+"bg").style.display = bdisplay;}//modify by haiwa @ 2005-7-14 ////--></script><script language="JScript"><!--function initialize(){ var a = new xWin("1",160,200,200,200,"窗口1","xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13"); ShowHide("1","none");//隐藏窗口1}window.onload = initialize;//--></script></head><base target="_blank"><body onselectstart="return false" oncontextmenu="return false" ><a onclick="ShowHide("1",null);return false;" href="">窗口1</a></body></html>
2023-07-26 12:58:491

求在textarea输入框输入内容后会显示一个关闭的按钮,点击关闭按钮后,可以删除输入的文字的JS代码

1.textarea 设置change 事件 用div先是隐藏,显示这个按钮 2.document.getElementById(ID).value="";
2023-07-26 12:58:573

delphi 树控件定位节点

其实你要实现的功能就是通常所说的 树的遍历.下面是一个遍历所有节点的Function,使用时调用下就可以了:function GetAllChild(TreeNode:TTreeNode;Item:TStrings):boolean;var ND:TTreeNode; ChildNum:integer; i:integer;begin if TreeNode=nil then begin result:=false; exit; end; if TreeNode.HasChildren=true then begin ChildNum:=treenode.Count; ND:=treenode.getFirstChild; for i:=1 to ChildNum do begin item.Add(nd.Text); nd:=nd.getNextSibling; end; result:=true; end else result:=false;end;
2023-07-26 12:59:041

编写算法,对一棵二叉链表表示的二叉树统计其叶子个数

#include<stdio.h>#include<malloc.h>typedefstructCSNode{//孩子-兄弟节点的定义chardata;structCSNode*firstChild;structCSNode*nextSibling;}CSNode,*CSTree;intleafNum=0;//全局变量,存储叶子节点的数量voidcreateCSTree(CSTree&tree){//创建孩子-兄弟二叉树charc=getchar();if(c=="*")tree=NULL;else{tree=(CSTree)malloc(sizeof(CSNode));tree->data=c;createCSTree(tree->firstChild);createCSTree(tree->nextSibling);}}//计算叶子节点的数目,孩子-兄弟二叉树中的叶子节点是指那些没有firstChild的节点voidgetLeafNum(CSTreetree){if(tree){if(!tree->firstChild)leafNum++;getLeafNum(tree->firstChild);getLeafNum(tree->nextSibling);}}intmain(){CSTreecsTree;printf("输入孩子兄弟链表表示的树的结点:");createCSTree(csTree);getLeafNum(csTree);printf("叶子节点的数量为:%d ",leafNum);return0;}例如输入:abc***de**f*g***输出为:叶子节点的数量为:4
2023-07-26 12:59:131

Delphi TreeView遍历所有节点问题

for i := 0 to TreeView.Items.count -1 do Memo.lines.add(TreeView.Items[i].text);
2023-07-26 12:59:212

数据结构的树,如何实现孩子节点法的编程。C语言。

随便找本数据结构的书,应该就有,我看过,没记住
2023-07-26 12:59:341

怎么利用js或jquery实现tab效果类似浏览器多窗口多标签的效果??

我也想知道,是通过什么原理实现的
2023-07-26 12:59:442

js 如果下一个标签==li标签的话 if语句怎么表达

fffggg
2023-07-26 13:00:064

利用tinyxml如何递归遍历kml所有节点

这个csdn上不是挺多资料的吗?见参考资料手册也有。《TinyXML Tutorial 中文指南》
2023-07-26 13:00:212

我点击当前 标签 获取和它平级的下一个标签 也就是它身后的标签 js 怎么获取?

一楼二楼的方法都应该有效。也可以用一对<div>把两个<div>包起来。然后用document.getElementById("div1").parentNode.lastChild来获取你想要的节点。
2023-07-26 13:00:293

angular怎么添加$index

循环的时候直接用就可以了
2023-07-26 13:00:372

建立中序线索二叉树,并且中序遍历; 2. 求中序线索二叉树上已知结点中序的前驱和后继

能用C#实现吗
2023-07-26 13:00:473