C 資料結構(三) 串和陣列

2022-01-31 06:34:32 字數 3686 閱讀 9868

1)c#資料結構(一)----線性表

2)c#資料結構(二)----棧和佇列

一、關於c#中的字串:

1)串是由連續儲存的字元組成

2)c#中的串具有恆定不變的特性,即 一旦被建立,就不能改變長度或者改變其中任何的字元。

3)串的連線、插入和刪除等操作都是生成了新串而沒有改變原串。

4)繼承自 system.object。所以是引用型別(int,bool,char 等都是struct 不是class,是值型別)。

5)system.string 是密封類,所以不能被繼承。

6)雖然system.string 是引用型別,但c#中將string 看作是基元型別,所以不用 new操作符建立例項,而是使用字串駐留的機制。

7)system.string繼承自 icomparable, icloneable, iconvertible, icomparable, ienumerable, ienumerable, iequatable。

8)c#提供了stringbuilder型別來支援高效地動態建立字串。

下面是自定義乙個string類,類中包含乙個字段,用以存放字串行的陣列,還有一些常用的串操作。

string

public

class

stringds

set}

//建構函式

public

stringds(

char

arr)}//

建構函式 

public

stringds(

intlen)

//求串長 

public

intgetlength() //

串比較 

public

intcompare(stringds s)  } 

if(i 

<=

len)

elseif(

this

[i] 

>

s[i])

}elseif(

this

.getlength() 

==s.getlength())

elseif(

this

.getlength() 

<

s.getlength())

return1;

} //

求子串 

public

stringds substring(

intindex, 

intlen) 

stringds s 

=new

stringds(len); 

for(

inti =0

; i 

<

len; 

++i) 

return

s; } 

//串連線 

public

stringds concat(stringds s)

for(

intj =0

; j 

<

s.getlength(); 

++j)

return

s1;} 

//串插入 

public

stringds insert(

intindex, stringds s) 

for(inti =

0; i 

<

index; 

++i) 

for(inti =

index; i 

<

index 

+len ; 

++i) 

for(inti =

index 

+len; i 

<

len2; 

++i) 

return

s1;}

//串刪除 

public

stringds delete(

intindex, 

intlen)

stringds s 

=new

stringds(

this

.getlength() 

-len);

for(

inti =0

; i 

<

index; 

++i)

for(

inti 

=index 

+len; i 

<

this

.getlength(); 

++i)

return

s;} 

//串定位 

public

intindex(stringds s) 

inti =

0; intlen 

=this

.getlength() 

-s.getlength(); 

while

(i <

len) }if

(i <=

len)

return-1

;} }二、陣列

1) 陣列是 n(n≥1)個相同資料型別的資料元素的有限序列。

2) 具有固定格式和數量

3)每乙個資料元素通過唯一的下標來標識和訪問

4)一經定義,每一維的大小及上下界都不能改變,所以,在陣列上不能進行插入、刪除資料元素等操作

5) 陣列採用順序儲存結構來儲存陣列中的資料元素

6) 陣列上的操作一般有:

1、取值操作:給定一組下標,讀其對應的資料元素;

2、賦值操作:給定一組下標,儲存或修改與其對應的資料元素;

3、清空操作:將陣列中的所有資料元素清除;

4、複製操作:將乙個陣列的資料元素賦給另外乙個陣列;

5、排序操作:對陣列中的資料元素進行排序,這要求陣列中的資料元素是可排序的;

6、反轉操作:反轉陣列中資料元素的順序。

三、c#中陣列

1) c#支援一維陣列、多維陣列及交錯陣列。

2)所有的陣列型別都隱含繼承自 system.array。

3)array 是乙個抽象類,繼承自 system.object,icloneable, ilist, icollection, ienumerable,所以陣列是引用型別。

4)c#除了能建立靜態陣列外,還可以建立動態陣列,通過使用 array 的靜態方法 createinstance 方法來實現。

array

public

class

myarray

//動態陣列

array arr1 

=array.createinstance(

typeof

(string),5

);for

(inti =

0; i 

<

5; i++)

//輸出

console.writeline(

"-------arr--------");

foreach

(string

i in

arr)

console.writeline(

"-------arr1--------");

foreach

(string

i in

arr1)}}

PHP陣列和資料結構(上)

1.陣列的宣告 兩種方法 說明 1 索引陣列的下標可以是非連續的值,只要在初始化時指定非連續的下標值即可 示例 a 1 a 10 高某 a a公司 此時a公司的下標成為11 a 北京市 北京市的下標為12 a 010 987654321 下標是13 a 10 gao qq.com 下標是11,下標1...

資料結構 比較鍊錶和陣列

計算機的資源是有限的 而人對計算機的需求是無限的 好的資料機構和演算法便是為了更好的滿足計算機使用者的需求 而這也是計算機作業系統意義所在。在學習資料結構的同時 了解一定的計算機作業系統知識有助於更好的理解其意義所在。而了解資料結構和演算法 會更容易明白作業系統的工作原理。廣義上講 資料結構是資料的...

《資料結構(C )版》之第4章字串和陣列

資料結構 c 版 之第4章字串和陣列 一 字串 字串是零個或多個字元組成的有限序列,只包含空格的字串稱為空格串。串中所包含的字元個數成為串的長度,長度為0的串稱為空串。記做 字串中任意連續的字元組成的子串行稱為該串的子串,包含子串的串稱為主串。子串的第乙個字元在主串中的序號稱為子串在主串中的位置。字...