字串通常被稱為串。
串的抽象資料型別 操作
說明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 返回棧頂的元素,不對...