JavaScript數(shù)據(jù)結(jié)構(gòu)中串的表示與應(yīng)用實例
本文實例講述了JavaScript數(shù)據(jù)結(jié)構(gòu)中串的表示與應(yīng)用。分享給大家供大家參考,具體如下:
類似于線性表的順序存儲結(jié)構(gòu),用一組地址連續(xù)的存儲單元存儲串值的字符序列。下面我們以串聯(lián)接為例,講解一下這種存儲結(jié)構(gòu)時串的操作。JavaScript自帶有concat方法,該方法返回字符串值,該值包含了兩個或多個提供的字符串的連接。
其實思路很簡單,就是將第二個串拼接在第一個串后面,代碼如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function Concat(a,b){
var t=new Array();
var a_len=a.length,
b_len=b.length;
for(var i=0;i<a_len;i++){
t.push(a[i]);
}
for(var i=0;i<b_len;i++){
t.push(b[i]);
}
return t;
}
var t=Concat("1234","abcd");
alert(t);//1,2,3,4,a,b,c,d
</script>
</body>
</html>
從上面的算法可以看出,在順序存儲結(jié)構(gòu)中,實現(xiàn)串操作的原操作其實就是字符序列的復(fù)制。操作的時間復(fù)雜度是基于復(fù)制的字符序列的長度的。這里我舉的例子是堆分配存儲的,還有一種是定長存儲。這兩者有什么區(qū)別呢?
定長分配就是在指定串的時候要指定一個長度限制,這樣超過的部分就會被截??;而堆分配存儲的存儲空間是在程序執(zhí)行過程中動態(tài)分配的。比如我定義一個array卻不指定長度,其實就是默認(rèn)采用的堆分配存儲。
由于數(shù)組的分配是定義的時候就要分配,但是要是分配的少了就會出現(xiàn)程序的運行和想象的不一樣或者是出現(xiàn)錯誤,要是分配的多了而用的少了又會出現(xiàn)資源的浪費,這個在大型的程序中是很浪費的,所以就要動態(tài)分配,動態(tài)分配在使用的時候再分配,知道要分配多少,這樣會使得空間的利用率比較高。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- C語言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問題
- C語言數(shù)據(jù)結(jié)構(gòu)實現(xiàn)字符串分割的實例
- C語言實現(xiàn)數(shù)據(jù)結(jié)構(gòu)串(堆分配存儲表示法)實例詳解
- C數(shù)據(jù)結(jié)構(gòu)中串簡單實例
- C語言數(shù)據(jù)結(jié)構(gòu)中串的模式匹配
- C++語言數(shù)據(jù)結(jié)構(gòu) 串的基本操作實例代碼
- 數(shù)據(jù)結(jié)構(gòu)基本概念和術(shù)語之位字節(jié)、字、位串、元素等
- C語言數(shù)據(jù)結(jié)構(gòu)之動態(tài)分配實現(xiàn)串
相關(guān)文章
javascript打造跨瀏覽器事件處理機(jī)制[Blue-Dream出品]
由于瀏覽器兼容的復(fù)雜性.打造一個較優(yōu)的跨瀏覽器事件處理函數(shù).不是件容易的事情.各大類庫也都通過了種種方案去抽象一個龐大的事件機(jī)制.2010-07-07
JavaScript正則表達(dá)式中g(shù)標(biāo)志詳解
正則的思想都是一樣的,但是具體的寫法會有所不同,下面這篇文章主要給大家介紹了關(guān)于JavaScript正則表達(dá)式中g(shù)標(biāo)志的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作實例分析
這篇文章主要介紹了js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作,結(jié)合實例形式分析了JavaScript基本dom事件、script在head和body中放置的區(qū)別、以及Dom的增刪改創(chuàng)建等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
JS實現(xiàn)的新浪微博大廳文字內(nèi)容滾動效果代碼
這篇文章主要介紹了JS實現(xiàn)的新浪微博大廳文字內(nèi)容滾動效果代碼,可實現(xiàn)頁面圖文元素定時滾動的效果,涉及JavaScript時間函數(shù)定時改變頁面元素的相關(guān)技巧,需要的朋友可以參考下2015-11-11
javascript實現(xiàn)Emrips反質(zhì)數(shù)枚舉的示例代碼
下面小編就為大家分享一篇javascript實現(xiàn)Emrips反質(zhì)數(shù)枚舉的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
如何實現(xiàn)修改密碼時密碼框顯示保存到cookie的密碼
修改密碼時密碼框顯示保存到cookie的密碼,只要在input框中加入AUTOCOMPLETE="OFF" 即可,感興趣的朋友可以了解下2013-12-12

