问题:有个不定长链表,数据类型是int,怎样实现插入数据和删除,欢迎讨论,请进! 你的要求是链表吗?不像啊。数据*2表示什么?是值自乘2倍还是意味着你的每个节点的值都是唯一的,并有额外一个重复次数的属性? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script language=javascript>//--模拟一下,xg_ChainNode为接点对象,xg_ChangeChain为链表对象//********************************************************************************************************* function xg_ChainNode(ANodeID,ANodeValue){ this.nodeID=ANodeID; this.nodeValue=ANodeValue; }//********************************************************************************************************* function xg_ChangeChain(){ this.xg_Chain=new Array(); this.xg_ArrayCount=0; this.xg_InsertNode=xg_InsertNode; this.xg_SearchChain=xg_SearchChain; this.xg_DeleteNode=xg_DeleteNode; this.xg_ChangeNode=xg_ChangeNode; }//********************************************************************************************************* function xg_SearchChain(ANodeID){ with(this){ for (var i=0;i<xg_Chain.length;i++){ if (xg_Chain[i].nodeID==ANodeID){ return xg_Chain[i]; } } return ""; } }//********************************************************************************************************* function xg_InsertNode(AXGNode){ var tmpNode; with(this){ if ((tmpNode=xg_SearchChain(AXGNode.nodeID))!=""){ tmpNode.nodeValue=2*tmpNode.nodeValue; } else{ xg_Chain[xg_ArrayCount]=AXGNode; xg_ArrayCount++; } } }//********************************************************************************************************* function xg_DeleteNode(ANodeID){ var tmpNode; with(this){ for (var i=0;i<xg_Chain.length;i++){ if (xg_Chain[i].nodeID==ANodeID){ for (var j=i+1;j<xg_Chain.length;j++){ xg_Chain[j-1]=xg_Chain[j]; } xg_Chain.pop(); return 0; } } return -1; } }//********************************************************************************************************* function xg_ChangeNode(ANodeID){ with (this){ var tmpNode=xg_SearchChain(ANodeID); if (tmpNode!=""){ tmpNode.nodeValue=4*tmpNode.nodeValue; return 0; } return -1; } }//********************************************************************************************************* function showChain(){ with(xgChangeChain){ document.write("<table align=center border=1>"); for (var i=0;i<xg_Chain.length;i++){ document.write("<tr><td>"+xg_Chain[i].nodeID+"</td><td>"+xg_Chain[i].nodeValue+"</td></tr>"); } document.write("</table>"); } }//*********************************************************************************************************</script><script language=javascript > var xgChangeChain=new xg_ChangeChain(); //-- 生成初始链表 for (var i=0;i<6;i++){ var xgChainNode=new xg_ChainNode(i,i); xgChangeChain.xg_InsertNode(xgChainNode); } //-- 插入一个已有的对象 xgChangeChain.xg_InsertNode(xgChangeChain.xg_Chain[1]); //-- 删除一个对象 xgChangeChain.xg_DeleteNode(2); //-- 修改一个节点 xgChangeChain.xg_ChangeNode(3); //-- 显示链表 showChain();</script> 怎么在url传个参数??? 发现一个问题,google浏览器是不是不能最大化? 帮忙看看这段JQ代码,有点问题~~~~ JS控制Div的问题 JS的一个高级问题,~~高手请进~~,速度结贴! 日期的显示 走马灯不会自动走 请问个图片旋转的问题 text 中怎么把选中的文字换掉? H5,键盘落下,页面不下来。 请问有没有方法使用程序,控制调整框架中各页面的大小? meizz兄请进,谢谢你的大力帮助
//--模拟一下,xg_ChainNode为接点对象,xg_ChangeChain为链表对象
//*********************************************************************************************************
function xg_ChainNode(ANodeID,ANodeValue){
this.nodeID=ANodeID;
this.nodeValue=ANodeValue;
}
//*********************************************************************************************************
function xg_ChangeChain(){
this.xg_Chain=new Array();
this.xg_ArrayCount=0;
this.xg_InsertNode=xg_InsertNode;
this.xg_SearchChain=xg_SearchChain;
this.xg_DeleteNode=xg_DeleteNode;
this.xg_ChangeNode=xg_ChangeNode;
}
//*********************************************************************************************************
function xg_SearchChain(ANodeID){
with(this){
for (var i=0;i<xg_Chain.length;i++){
if (xg_Chain[i].nodeID==ANodeID){
return xg_Chain[i];
}
}
return "";
}
}
//*********************************************************************************************************
function xg_InsertNode(AXGNode){
var tmpNode;
with(this){
if ((tmpNode=xg_SearchChain(AXGNode.nodeID))!=""){
tmpNode.nodeValue=2*tmpNode.nodeValue;
} else{
xg_Chain[xg_ArrayCount]=AXGNode;
xg_ArrayCount++;
}
}
}
//*********************************************************************************************************
function xg_DeleteNode(ANodeID){
var tmpNode;
with(this){
for (var i=0;i<xg_Chain.length;i++){
if (xg_Chain[i].nodeID==ANodeID){
for (var j=i+1;j<xg_Chain.length;j++){
xg_Chain[j-1]=xg_Chain[j];
}
xg_Chain.pop();
return 0;
}
}
return -1;
}
}
//*********************************************************************************************************
function xg_ChangeNode(ANodeID){
with (this){
var tmpNode=xg_SearchChain(ANodeID);
if (tmpNode!=""){
tmpNode.nodeValue=4*tmpNode.nodeValue;
return 0;
}
return -1;
}
}
//*********************************************************************************************************
function showChain(){
with(xgChangeChain){
document.write("<table align=center border=1>");
for (var i=0;i<xg_Chain.length;i++){
document.write("<tr><td>"+xg_Chain[i].nodeID+"</td><td>"+xg_Chain[i].nodeValue+"</td></tr>");
}
document.write("</table>");
}
}
//*********************************************************************************************************
</script><script language=javascript >
var xgChangeChain=new xg_ChangeChain();
//-- 生成初始链表
for (var i=0;i<6;i++){
var xgChainNode=new xg_ChainNode(i,i);
xgChangeChain.xg_InsertNode(xgChainNode);
}
//-- 插入一个已有的对象
xgChangeChain.xg_InsertNode(xgChangeChain.xg_Chain[1]);
//-- 删除一个对象
xgChangeChain.xg_DeleteNode(2);
//-- 修改一个节点
xgChangeChain.xg_ChangeNode(3);
//-- 显示链表
showChain();
</script>