javascript寫的一個鏈表實現(xiàn)代碼
更新時間:2009年10月25日 17:35:43 作者:
今天在百度上看到有人問怎么用Javascript 寫一個學(xué)生管理系統(tǒng)。個人認(rèn)為沒有什么實現(xiàn)價值。無聊練練手吧,很久沒寫JS了。
本來要用Array來保存數(shù)據(jù)的,沒試過用JS來數(shù)據(jù)結(jié)構(gòu),就用JS來試試吧。
JS效率真的很低一個鏈表裝1000個對象瀏覽器就提示運行緩慢了。
之前覺得AJAX3D挺用前景的,現(xiàn)在看來還沒有流行就要夭折了。用delphi開發(fā)的游戲人們都覺得太慢了,何況用JS。
下面是我實現(xiàn)的一個鏈表:
/*@author eric
*@mail shmilyhe@163.com
*blog.csdn.net/shmilyhe
*/
<script>
function Student(no,name){
this.id=no;
this.name=name;
this.scores={chinese:0,math:0,english:0};
}
function List(){
this.head=null;
this.end=null;
this.curr=null;
}
List.prototype.add=function(o){
var tem={ob:o,next:null};
if(this.head){
this.end.next=tem;
this.end=tem;
}else{
this.head=tem;
this.end=tem;
this.curr=tem;
}
}
List.prototype.del=function(inde){
var n=this.head;
for(var i=0;i<inde;i++){
n=n.next;
}
n.next=n.next.next?n.next.next:null;
}
List.prototype.next=function(){
var te=null;
if(this.curr){
te=this.curr.ob; this.curr=this.curr.next;}
return te;
}
List.prototype.hasnext=function(){
if(this.curr.ob!=null)return true;
return false;
}
var list=new List();
for(var i=0;i<1000;i++){
list.add(new Student(i,'name'+i));
}
var i=0;
while(list.hasnext()){
document.writeln(list.next().name);
if(i==10){document.writeln('<br/>'); i=0;}
i++;
}
</script>
JS效率真的很低一個鏈表裝1000個對象瀏覽器就提示運行緩慢了。
之前覺得AJAX3D挺用前景的,現(xiàn)在看來還沒有流行就要夭折了。用delphi開發(fā)的游戲人們都覺得太慢了,何況用JS。
下面是我實現(xiàn)的一個鏈表:
復(fù)制代碼 代碼如下:
/*@author eric
*@mail shmilyhe@163.com
*blog.csdn.net/shmilyhe
*/
<script>
function Student(no,name){
this.id=no;
this.name=name;
this.scores={chinese:0,math:0,english:0};
}
function List(){
this.head=null;
this.end=null;
this.curr=null;
}
List.prototype.add=function(o){
var tem={ob:o,next:null};
if(this.head){
this.end.next=tem;
this.end=tem;
}else{
this.head=tem;
this.end=tem;
this.curr=tem;
}
}
List.prototype.del=function(inde){
var n=this.head;
for(var i=0;i<inde;i++){
n=n.next;
}
n.next=n.next.next?n.next.next:null;
}
List.prototype.next=function(){
var te=null;
if(this.curr){
te=this.curr.ob; this.curr=this.curr.next;}
return te;
}
List.prototype.hasnext=function(){
if(this.curr.ob!=null)return true;
return false;
}
var list=new List();
for(var i=0;i<1000;i++){
list.add(new Student(i,'name'+i));
}
var i=0;
while(list.hasnext()){
document.writeln(list.next().name);
if(i==10){document.writeln('<br/>'); i=0;}
i++;
}
</script>
您可能感興趣的文章:
- js實現(xiàn)雙向鏈表互聯(lián)網(wǎng)機頂盒實戰(zhàn)應(yīng)用實現(xiàn)
- JavaScript數(shù)據(jù)結(jié)構(gòu)之雙向鏈表和雙向循環(huán)鏈表的實現(xiàn)
- JavaScript數(shù)據(jù)結(jié)構(gòu)之雙向鏈表定義與使用方法示例
- JS雙向鏈表實現(xiàn)與使用方法示例(增加一個previous屬性實現(xiàn))
- JavaScript數(shù)據(jù)結(jié)構(gòu)之鏈表的實現(xiàn)
- javascript循環(huán)鏈表之約瑟夫環(huán)的實現(xiàn)方法
- javascript數(shù)據(jù)結(jié)構(gòu)之雙鏈表插入排序?qū)嵗斀?/a>
- JS實現(xiàn)的合并兩個有序鏈表算法示例
- JavaScript實現(xiàn)鏈表插入排序和鏈表歸并排序
- JS基于對象的鏈表實現(xiàn)與使用方法示例
- JavaScript數(shù)據(jù)結(jié)構(gòu)之單鏈表和循環(huán)鏈表
- JavaScript 雙向鏈表操作實例分析【創(chuàng)建、增加、查找、刪除等】
相關(guān)文章
layui--select使用以及下拉框?qū)崿F(xiàn)鍵盤選擇的例子
今天小編就為大家分享一篇layui--select使用以及下拉框?qū)崿F(xiàn)鍵盤選擇的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09from 表單提交返回值用post或者是get方法實現(xiàn)
from 表單提交的返回值可以用jquery的post或者是get方法去實現(xiàn),具體如下,感興趣的朋友可以參考下,希望對大家有所幫助2013-08-08通過js獲取上傳的圖片信息(臨時保存路徑,名稱,大小)然后通過ajax傳遞給后端的方法
最近有朋友向我請教,使用js獲取上傳圖片的信息然后通過ajax傳遞給后端,怎么實現(xiàn)呢?通過上網(wǎng)搜索大量資料,下面小編把我的解決辦法整理,分享給大家,需要的朋友可以參考下2015-10-10JS中的==運算: [''''] == false —>true
這篇文章主要介紹了JS中的==運算: [''] == false —>true的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07JavaScript仿小米官網(wǎng)注冊登錄功能的實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實現(xiàn)仿小米官網(wǎng)登錄注冊完整功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11JS特權(quán)方法定義作用以及與公有方法的區(qū)別
在構(gòu)造函數(shù)內(nèi)部通過this關(guān)鍵字定義的的方法為特權(quán)方法它的作用為在構(gòu)造函數(shù)外面公開訪問(僅限于實例化的對象),而且還能夠訪問私有成員和方法,感興趣的你可以參考下哈2013-03-03