1.棧是限制在一端進行插入操作和刪除操作的線性表(俗稱堆疊),允許進行操作的一端稱為「棧頂」,
另一固定端稱為「棧底」,當棧中沒有元素時稱為「空棧」。向乙個棧內插入元素稱為是進棧,push;
從乙個棧刪除元素稱為是出棧,pop。特點 :後進先出(lifo)。
棧的封裝
class
stack
(object):
def__init__
(self)
: self.stack =
def__len__
(self)
:return
len(self.stack)
defpush
(self, item)
:print
('元素【%s】入棧成功'
%(item)
)def
pop(self):if
not self.is_empty():
item = self.stack.pop(
)print
('元素【%s】出棧成功'
%(item)
)# else:
# raise exception('棧為空')
deftop
(self):if
not self.is_empty():
item = self.stack[-1
]print
('棧頂元素為:【%s】'
%(item)
)# else:
# raise exception('棧為空')
2.佇列是限制在一端進行插入操作和另一端刪除操作的線性表,允許進行插入操作的一端稱為「隊尾」,
允許進行刪除操作的一端稱為「隊頭」,,當佇列中沒有元素時稱為「空隊」。特點 :先進先出(fifo)。
佇列的封裝
class
queue
(object):
def__init__
(self)
: self.__queue =
def__len__
(self)
:#求佇列長度
return
len(self.__queue)
defis_empty
(self)
:#判斷佇列是否為空
return
len(self.__queue)==0
defenqueue
(self,item)
:#入隊操作
print
('元素【%s】入對成功'
%(item)
)def
first
(self):if
not self.is_empty():
item = self.__queue[0]
print
('對頭元素為:【%s】'
%(item)
)else
:raise exception(
'隊列為空'
)def
dequeue
(self):if
not self.is_empty():
item = self.__queue.pop(0)
print
("元素【%s】出對成功"
%(item)
)else
:raise exception(
'隊列為空'
物件導向程式設計三大特性
類和物件的關係 類 而物件則是以類為模板所建立的。類的組成 物件建立記憶體模型 1 當程式開始執行,方法區以載入好程式所需類的位元組碼檔案。2 棧記憶體引導程式,當執行到需要建立物件時,會在堆記憶體中建立物件,此時物件的成員變數為初始值,成員方法為位址,指向方法區中的類成員方法。3 堆記憶體中所建立...
物件導向程式設計三大特性(csharp)
1.封裝 2.繼承 3.多型 不扯別的,看 就好 using system 程式的宣告 namespace demo0709 交通工具類 class transport public transport int id,string name public override string tostri...
Java物件導向程式設計的三大特性
繼承 繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。物件的乙個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼 承了原始類的特性,新類稱為原始類的派生類 子類 而原始類稱為新類的基類 父類 派生類可以從它的基類那裡繼承方法和例項變數,並且類可以修改或增 加新...