將原來的存儲元素改為存儲位置彪见,通過位置找到元素。
看這個看不明白是這幾天我突然卡殼的一個原因娱挨,當(dāng)然還有其他很多原因余指,這主要是一小個原因。其他便是諸如:考試跷坝、復(fù)習(xí)酵镜、學(xué)習(xí)痛苦、身體不舒服柴钻、精神渙散淮韭、放假、在我學(xué)習(xí)時贴届,室友在邊上看電影靠粪,為了追求效果而連接藍牙音箱增大音量且屢教不改的行為、室友在我學(xué)習(xí)時吃飯吧唧嘴毫蚓,且伴隨big_big_noise的無法改正的行為等等占键。這些其實都是小事,我去圖書館就OK了元潘。
一個不算原因的原因:簡書的寫作環(huán)境越來越糟畔乙。
我從心里已經(jīng)放棄了這個平臺。
這些都是我放棄了已經(jīng)堅持60天的原因翩概。但是我并沒有因此而失去一顆學(xué)習(xí)的心牲距,我還在學(xué),只不過不想再繼續(xù)之前敷衍钥庇、心不在焉牍鞠、自大、自滿等一系列負面的行為上沐。
但是我心里還是有很多話想說皮服,身邊的每個人都有自己的事情做楞艾,就算沒事情做的人也對你的心情参咙、想法龄广、故事不感興趣。沒人有空有心聽我說話蕴侧,自己也沒有想過抽時間好好跟身邊的人好好說說話择同。
不過值得慶幸的是,還有我的父母在身后支持我净宵。當(dāng)然他們甚至不知道我在學(xué)什么敲才,但是他們就是支持我,不為什么择葡。
但有時候父母并不能完全的理解我的處境紧武,我的心情,我的想法敏储。
emmm阻星。。已添。很多時候我自己都不太明白自己在想什么妥箕。
出來以后,我變的越來越猶豫更舞,不敢做事畦幢,不敢前進。只敢在角落里默默的學(xué)缆蝉,也不知道學(xué)些什么宇葱,就是學(xué),遇到問題就自己解決返奉,也不會去向身邊的人求助贝搁。遇到想要的也不敢去追求,害怕失敗了便再也沒有機會了芽偏。只想不斷地提升自己雷逆,提升到不會失敗的地步。這樣我就不會因為失敗污尉,失去任何東西了膀哲。
hhhh,你也沒什么東西被碗,你能失去什么呢某宪?
之前有一個很自卑的室友,我覺得他一定很孤獨锐朴,我需要去幫助他兴喂。
哈哈哈,三年下來,結(jié)果最孤獨的人是我衣迷,當(dāng)然我也有很多朋友畏鼓,室友很好。
但是就是有一種很無助的孤獨感壶谒,誰能幫你呢云矫?沒有。誰理解你呢汗菜?沒有让禀。
似乎只有在學(xué)習(xí)時,我才能感覺到充實陨界,覺得自己還在巡揍。或者在玩游戲的時候菌瘪,完全的把自己沉浸進去吼肥,這樣也能讓我短暫的忘記。但是只是短暫的麻车,并不想一直打游戲缀皱。
有多久沒有真正的談心,有多久沒有放手做一件事动猬,又有多久沒有敞開心扉讓別人理解啤斗。很久很久~。
我一直都不覺得自己比別人差赁咙,比別人怎樣怎樣钮莲,只是覺得自己不應(yīng)該是這樣。那我又應(yīng)該是哪樣呢彼水?心里好像有什么東西一直阻擋我看清自己崔拥,但一直不知道是什么。
寫了這么多凤覆,還是有很多話沒說链瓦,也想不起要說些什么。就好像我就不應(yīng)該和別人分享自己的想法盯桦,就活該爛在肚子里慈俯。
算了。這可能真的是在說胡話拥峦。
我打算自己開個博客網(wǎng)站贴膘,自己自嗨了。
簡書太亂了略号,什么人都有刑峡。雖然這與社會很像洋闽,什么人都有,但是我還能選擇我自己是什么人突梦。推薦的文章越來越糟喊递,看不下去。雖然自己寫的東西也看不下去阳似,所以打算發(fā)在自己的博客。
說了這么多的廢話铐伴,代碼在后面撮奏,我看的懂,但是不知道它的作用当宴、優(yōu)缺點畜吊。
最終還是決定把上面的東西,與陌生人分享户矢。放棄日更并不是什么大不了的事玲献,我只是需要一個說話的地方。而不是一個天天都得說話的地方梯浪。
每個人都會有很多想法吧捌年,我………………………………
from doublylinkedbase import _DoublyLinkedBase
class PositionList(_DoublyLinkedBase):
"""位置隊列"""
class Position:
"""單一元素的位置類"""
def __init__(self, container, node):
"""初始化位置,用戶不可見"""
self._container = container
self._node = node
def element(self):
"""返回一個位置的節(jié)點的元素"""
return self._node._element
def __eq__(self, other):
"""用于判斷兩個位置是否相等:p==q"""
return type(other) is type(self) and other._node is self._node
def __ne__(self, other):
"""用于判斷兩個位置是否相等:p!=q"""
return not (self == other)
def _validate(self, p):
"""返回一個位置上的節(jié)點元素挂洛,如果位置不合法返回異常"""
if not isinstance(p, self.Position):
raise TypeError('p must be proper Position type')
if p._container is not self:
raise ValueError('p does not belong to this container')
if p._node._next is None:
raise ValueError('p is no longer valid')
return p._node
def _make_position(self, node):
"""放回一個新的節(jié)點的位置對象礼预,如果給的節(jié)點是哨兵則返回None"""
if node is self._header or self._tailer:
return None
else:
return self.Position(self, node)
def first(self):
"""返回位置隊列的第一個元素,如果隊列為空返回None"""
return self._make_position(self._header._next)
def last(self):
"""返回位置隊列的最后一個元素虏劲,如果隊列為空返回None"""
return self._make_position(self._tailer._prev)
def before(self, p):
"""返回一個位置的前一個位置"""
node = self._validate(p)
return self._make_position(node._prev)
def after(self, p):
"""返回一個位置的后一個位置"""
node = self._validate(p)
return self._make_position(node._next)
def __iter__(self):
"""生成器對象托酸,使位置隊列可以迭代"""
cursor = self.first()
while cursor is not None:
yield cursor.element()
cursor = self.after(cursor)
def _insert_between(self, e, predecessor, successor):
"""繼承父類的_insert_between方法,將返回節(jié)點重載為返回位置"""
node = super()._insert_between(e, predecessor, successor)
return self._make_position(node)
def add_first(self, e):
"""在隊列頭加入一個新的元素"""
return self._insert_between(e, self._header, self._header._next)
def add_last(self, e):
"""在隊列尾加入一個新的元素"""
return self._insert_between(e, self._tailer._prev, self._tailer)
def add_before(self, p, e):
"""在p位置前插入一個新的元素e"""
original = self._validate(p)
return self._insert_between(e, original._prev, original)
def add_after(self, p, e):
"""在p位置后插入一個新的元素e"""
original = self._validate(p)
return self._insert_between(e, original, original._next)
def delete(self, p):
"""刪除p位置上的節(jié)點"""
original = self._validate(p)
return self._delete_node(original)
def replace(self, p, e):
"""把p位置上的元素替換為e"""
original = self._validate(p)
old_element = original._element
original._element = e
return old_element