Lists, Dictionaries, and Trees – Oh My!
Tyler Moore
CSE 3353, SMU, Dallas, TX
February 12, 2013
Portions of these slides have been adapted from the slides written by Prof. Steven Skiena at SUNY Stony Brook, author
- f Algorithm Design Manual. For more information see http://www.cs.sunysb.edu/~skiena/
Implementing Linked Lists in Python
You would never actually want to use linked lists in Python Built-in lists are much more efficient Nonetheless, implementing linked lists serves as a nice introduction to OOP in Python Code at http://lyle.smu.edu/~tylerm/courses/cse3353/ code/linked_list.py Compare to the C code in ADM pp. 68–70. Which do you prefer?
2 / 28
Implementing Linked Lists in Python
1 class Node : 2
def i n i t ( s e l f , item=None , next=None ) :
3
s e l f . item = item
4
s e l f . next = next
5
def s t r ( s e l f ) :
6
return s t r ( s e l f . item )
7 8 9 class
L i n k e d L i s t :
10
def i n i t ( s e l f ) :
11
s e l f . length = 0
12
s e l f . head = None
1 #code
f o r Node and L i n k e d L i s t in l i n k e d l i s t . py
2 import
l i n k e d l i s t
3 l i l = l i n k e d l i s t . L i n k e d L i s t () 3 / 28
Inserting a Node
1
def i n s e r t l i s t ( s e l f , item ) :
2
node = Node ( item )
3
node . next = s e l f . head
4
s e l f . head = node
5
s e l f . length = s e l f . length + 1
1 l i l . i n s e r t n o d e ( ‘ ‘ a ’ ’ ) 4 / 28