4 1 串的順序儲存結構

2022-08-01 05:33:13 字數 3433 閱讀 3418

<?php 

header("content-type:text/html;charset=utf-8");

class

linear_string

//生成乙個值等於字串常量chars的串

public

function strassign($chars=null

)

$this->string = substr($this->string,0,strlen($chars));//

將初始字串截斷的和chars一樣長

for($i = 0;$i

}//返回串的元素個數,即串的長度

public

function

strlength()

//返回串的自第pos個字元起長度為len的子串

public

function substring($pos,$len

)else

$sub = implode("",$sub

);

return

$sub

; }

}//將string1和string2連線成乙個新串

public

function concat($string1,$string2

)

for($i=0;$i

length;$i++)}}

//比較兩個串的大小,若string1>string2,則返回值》0;若string1=string2,則返回值=0;若string1public

function strcompare($string1,$string2

) }

return

$string2->length - $string1->length;//

退出迴圈證明兩串長度相等部分的內容是一樣的,而此時若長度不等,再進行相減,得出結果

}

//在串的第pos個字元起長度為len的子串

public

function strinsert($pos,$string

)

$this->length += $string->length;

for($i = $this->length;$i>=$pos;$i--)

for($i=$pos;$i

length;$i++)

}//從串的第pos個字元之前刪除長度為len的子串

public

function strdelete($pos,$len

)

for($i=$pos+$len;$i

length;$i++)

$this->length -= $len

;

$this->string = substr($this->string,0,$this->length);

}//若主串中第pos個字元之後存在與string相等的子串,則返回串string在主串中第一次出現的位置

public

function index($pos,$string

)

$length = $this->length;

$length_sub = $string->length;

$i = $pos

;

while($i

else

return$i;

}return 0;

}}?>

實現上述函式:

<?php 

header("content-type:text/html;charset=utf-8");

include 'linear_string.class.php';

$string = "xiaolinzifendoudediandi";

echo "初始化串:";

echo "

";$linear_string = new linear_string($string

);print_r($linear_string

);echo "

";echo "

";echo "獲取2到5的子串:";

echo "

";$sub = $linear_string->substring(2,5);

echo($sub

);echo "

";echo "

";echo "連線兩個串lin和qinhua:";

echo "

";$string1 = new linear_string("lin");

$string2 = new linear_string("qinhua");

$linear_string->concat($string1,$string2

);print_r($linear_string

);echo "

";echo "

";echo "比較兩個串zuasha和zuashan的大小:";

echo "

";$string1 = new linear_string("zuasha");

$string2 = new linear_string("zuashan");

$strcom = $linear_string->strcompare($string1,$string2

);echo($strcom

);echo "

";echo "

";echo "在索引3處插入乙個子串xinru:";

echo "

";$string = new linear_string("xinru");

$linear_string->strinsert(3,$string

);print_r($linear_string

);echo "

";echo "

";echo "在索引3處刪除乙個長度為5的子串:";

echo "

";$linear_string->strdelete(3,5);

print_r($linear_string

);echo "

";echo "

";echo "若主串中第3個字元之後存在與in相等的子串,則返回串in在主串中第一次出現的位置:";

echo "

";$string = new linear_string("in");

$index = $linear_string->index(3,$string

);echo

$index

;?>

最後的實現結果:

串 順序儲存結構

該文章主要介紹串的順序儲存結構以及相關運算。標頭檔案 sqstring.h ifndef sqstring h define sqstring h include const int maxsize 100 class sqstringclass 順序串類 endif 原始檔 sqstring.cp...

4 2串的順序儲存結構

定長順序串是將串設計成一種靜態結構型別,串的儲存分配是在編譯時完成的。與前面所講的線性表的順序儲存結構類似,可用一組位址連續的儲存單元儲存串的字串行。定長順序串型別定義如下 define maxlen 40 typedef struct sstring 其中 maxlen 表示串的最大長度,ch 是...

資料結構筆記 4 1 棧的順序儲存結構及實現

1 概念 棧的順序儲存結構通常是特殊的順序儲存線性表。2 功能 實現 1 棧的順序儲存結構的儲存結構 typedef struct sqstack sqstack,sqstackpointer 2 初始化棧 分配空間 void initstack sqstackpointer s 3 入棧 int ...