python實現資料結構太Easy

2021-06-20 14:57:07 字數 2165 閱讀 2871

記得原來學資料結構和演算法基礎,覺得很難,現在用python實現資料結構太easy了。

以下是練習的樹結構和雙向鍊錶結構。

#tree

class treenode:

def __init__(self,value):#value is used here,node is used other places

self.parent=none

self.value=value

self.children=

def add_child(self,n):

n.parent=self

def digraph(self,g):#將樹轉換成networkx中的有向圖。

if self.parent==none:

g.add_node(self.value,level=0)

for c in self.children:

g.add_node(c.value,level=1)

g.add_edge(self.value,c.value)

c.digraph(g)

def getroot(self):

if self.parent==none:

return self

return self.parent.getroot()

#double linkedlist

class linkedlistnode(object):

def __init__(self, value=none):

self.prev = none

self.next = none

self.value = value

def str_left(self):

s=str(self.value)

n=self.prev

while n!=none:

s+="->"+str(n.value)

n=n.prev

return s

def str_right(self):

s=str(self.value)

n=self.next

while n!=none:

s+="->"+str(n.value)

n=n.next

return s

def str(self):

return self.head().str_right()

def link_right(self,b):

self.next=b

b.prev=self

def link_left(self,b):

self.prev=b

b.next=self

def unlink_right(self):

b=self.next

self.next=none

if b!=none:

b.prev=none

def unlink_left(self):

b=self.prev

self.prev=none

if b!=none:

b.next=none

def head(self):

if self.prev==none:

return self

else:

return self.prev.head()

def tail(self):

if self.next==none:

return self

else:

return self.next.tail()

# def cut_prev(self):

# before=self.prev

# if before!=none:

# else:

# unlinkab(before,self)

def remove_self(self):

before=self.prev

after=self.next

self.unlink_left()

self.unlink_right()

if before!=none and after!=none:

before.link_right(after)

資料結構 Python實現

參考部落格 演算法和資料結構 一 棧和佇列 python資料結構 棧 佇列的實現 一 python資料結構 棧 佇列的實現 二 python資料結構 鍊錶的實現 資料結構 定義 簡單來說,資料結構就是設計資料以何種方式組織並儲存在計算機中。比如 列表 集合與字典等都是一種資料結構。ps 程式 資料結...

資料結構 Python實現

參考部落格 演算法和資料結構 一 棧和佇列 python資料結構 棧 佇列的實現 一 python資料結構 棧 佇列的實現 二 python資料結構 鍊錶的實現 資料結構 定義 簡單來說,資料結構就是設計資料以何種方式組織並儲存在計算機中。比如 列表 集合與字典等都是一種資料結構。ps 程式 資料結...

Python實現Map資料結構

class hashtable def init self 初始化兩個list,乙個用來儲存鍵值,乙個用來儲存值 self.size 11 self.slots none self.size self.data none self.size 定義hash函式,使用餘數法 def hashfuncti...