2 資料結構 串(python描述)

2021-09-14 07:23:26 字數 3748 閱讀 1676

字串通常被稱為串。

串的抽象資料型別 操作

說明initstring(string)

初始化串

stringassign(stringdest,stringsrc)

將後乙個的字串行賦值給第乙個

isemptystring(string)

若為空返回true,反之false

stringcopy(a,b)

由b複製得到a

stringcompare(a,b)

若a>b,返回1;等於,0;小於,-1

stringlength(string)

返回string長度

clearstring(string)

清空string,變為空串

stringconcat(a,b)

將b連線到a後面,新的a變為以前的a+b

indexstring(a,b,ipos)

若a,b存在相同的字串,則返回它在a中第ipos 個字元之後第一次出現的結果;否則ipos=-1,並返回-1.

stringdelete(string,ipos,length)

從string第ipos位置,刪除指定的length長度的字串

stringinsert(a,ipos,b)

在a的第ipos位置後插入b

stringreplace(a,b,stringtemp)

串a中的b串被stringtemp代替

初始化、是否為空、建立串、串連線、獲取子串

## 初始化串

def__init__

(self)

: self.maxstringsize=

256 self.chars=

"" self.length=

0## 判斷是否為空

defisempty

(self)

:if self.length ==0:

isempty=

true

else

: isempty=

false

return isempty

## 建立串

defcreatestring

(self)

: stringsh=

input

("請輸入字串:")if

len(stringsh)

>self.maxstringsize

print

("溢位,超過的部分無法儲存"

) self.chars=stringsh[

:self.maxstringsize]

else

: self.chars=stringsh

## 串連線

defstringconcat

(self,strsrc)

: lengthsrc=strsrc.length

stringsrc=strsrc.chars

if lengthsrc+

len(self.chars)

<=self.maxstringsize:

self.chars=self.chars+stringsrc

else

:print

("兩個字元的長度之和溢位,超過的部分無法顯示"

) size=self.maxstringsize-

len(self.chars)

self.chars=self.chars+stringsrc[

:size]

print

("連線後字串為:"

,self.chars)

## 獲取字串

defsubstring

(self,ipos,length)

:if ipos>

len(self.chars)-1

or ipos<

0or length<

1 \ or

(length+ipos)

>

len(self.chars)

:print

("無法獲取"

)else

: substr = self.chars[ipos:ipos+length]

print

("獲取的字串為:"

,substr)

鏈式儲存主要有幾個東西,data、next、head、tail、length

## 初始化

def __ init__(self)

: self.data =

none

self.

next

=none

## 建立乙個鏈串的函式

defcreatestring

(self)

: stringsh =

input

("請輸入乙個字串:"

)while self.length <

len(stringsh)

: tstring=stringnode(

) tstring.data=stringsh[self.length]

tstring.tail.

next

= tstring

self.tail = tstring

self.length +=

1## 複製串

def"""

將頭和尾對其,然後長度等長

"""

## 借助第三個轉移變數

defreversestr

(st)

: ch =

list

(st)

lens =

len(ch)

i=0 j=lens-

1while itemp = ch[i]

ch[i]

= ch[j]

ch[j]

= temp

i +=

1 j -=

1return

''.join(ch)

st =

"abcdefg"

print

(reversestr(st)

)## 其實在python轉移變數賦值可以不進入第三個變數

defreversestr

(st)

: ch =

list

(st)

lens =

len(ch)

i=0 j=lens-

1while ich[i]

,ch[j]

=ch[j]

,ch[i]

i +=

1 j -=

1return

''.join(ch)

st =

"abcdefg"

print

(reversestr(st)

)## 遍歷全部元素,拼接

defreversestr

(st)

: lens =

len(st)

result =

""for i in

range

(lens)

: result = st[i]

+result

return result

st =

"abcdefg"

print

(reversestr(st)

)

2 資料結構與演算法python描述 佇列

佇列先進先出 fifo 使用單鏈表實現佇列用單鏈表實現佇列class node object definit self,value none,next none self.value value self.next next class linkedlist object definit self,...

Python描述 資料結構與演算法 2 順序表

2.1 線性表的概念和性質 2.1.1 線性表是 e ee 中有窮個元素的組成的序列 l e0,e 1,en 1 l e e e l e0 e1 en 1 元素之間的關係 為乙個二元組的集合 r r r 2.1.2 對於非空的線性表或者線性結構的特點 2.1.3 線性表的抽象資料型別adt 2.1....

js描述的 資料結構 棧結構 (2)

1.一種受限制的線性結構,這種結構可以基於陣列來實現。2.可以抽象成乙個容器,上面的是棧頂,底下的是棧底。所以僅允許對棧頂進行操作,1.函式式呼叫棧 基於棧的形式來進行函式的整體呼叫。2.遞迴 棧溢位就是其中的一點。push 新增乙個元素到棧頂。pop 移除棧頂的元素。peek 返回棧頂的元素,不對...