美文网首页PythonPython语言与信息数据获取和机器学习
Python数据结构(栈, 队列, 二叉树, 链表, 图)

Python数据结构(栈, 队列, 二叉树, 链表, 图)

作者: 冰三尺 | 来源:发表于2017-06-04 22:57 被阅读340次

Python栈

class Stack():
    def __init__(st,size):
        st.stack=[];
        st.size=size;
        st.top=-1;

    def push(st,content):
        if st.Full():
            print "Stack is Full!"
        else:
            st.stack.append(content)
            st.top=st.top+1

    def out(st):
        if st.Empty():
            print "Stack is Empty!"
        else:
            st.top=st.top-1
    def Full(st):
        if  st.top==st.size:
            return True
        else:
            return False
    def Empty(st):
        if st.top==-1:
            return True
        else:
            return False

Python队列

class Queue():
    def __init__(qu,size):
        qu.queue=[];
        qu.size=size;
        qu.head=-1;
        qu.tail=-1;
    def Empty(qu):
        if qu.head==qu.tail:
            return True
        else:
            return False
    def Full(qu):
        if qu.tail-qu.head+1==qu.size:
            return True
        else:
            return False
    def enQueue(qu,content):
        if qu.Full():
            print "Queue is Full!"
        else:
            qu.queue.append(content)
            qu.tail=qu.tail+1
    def outQueue(qu):
        if qu.Empty():
            print "Queue is Empty!"
        else:
            qu.head=qu.head+1

Python二叉树

class TRee():

    def __init__(self, leftjd=0, rightjd=0, data=0):
        self.leftjd = leftjd
        self.rightjd = rightjd
        self.data = data


class Btree():

    def __init__(self, base=0):
        self.base = base

    def empty(self):
        if self.base is 0:
            return True
        else:
            return False

    def qout(self, jd):
        """前序遍历"""
        if jd == 0:
            return
        print jd.data
        self.qout(jd.leftjd)
        self.qout(jd.rightjd)

    def mout(self, jd):
        """中序遍历"""
        if jd == 0:
            return
        self.mout(jd.leftjd)
        print jd.data
        self.mout(jd.rightjd)

    def hout(self, jd):
        """后序遍历"""
        if jd == 0:
            return
        self.hout(jd.leftjd)
        self.hout(jd.rightjd)
        print jd.data

二叉树使用

        7
8              9

>>> jd1 = TRee(data=8)
>>> jd2 = TRee(data=9)
>>> base = TRee(jd1,jd2,7)
>>> x = Btree(base)
#前序遍历
>>> x.qout(x.base)
7
8
9
#中序遍历
>>> x.mout(base)
8
7
9
#后序遍历
>>> x.hout(base)
8
9
7
>>> 

Python链表

class jd():
    def __init__(self,data):
        self.data=data
        self.next=None
    
class Linklist():
    def __init__(self,jd2):
        self.head=jd2
        self.head.next=None
        self.tail=self.head

    def add(self,jd2):
        self.tail.next=jd2
        self.tail=self.tail.next

    def view(self):
        jd2=self.head
        linkstr=""
        while jd2 is not None:
            if jd2.next is not None:
                linkstr=linkstr+str(jd2.data)+"-->"
            else:
                linkstr+=str(jd2.data)
            jd2=jd2.next
        print linkstr

相关文章

  • Python数据结构(栈, 队列, 二叉树, 链表, 图)

    Python栈 Python队列 Python二叉树 二叉树使用 Python链表

  • 前端常见数据结构小结

    常见数据结构的 JavaScript 实现 栈 队列 链表 集合 字典 哈希表 二叉树 图 前端与数据结构 数据结...

  • 数据结构

    数据结构 队列&栈&链表&集合&hash表&树&图 队列 先进先出 栈 先进后出 链表 单向链表 双向链表 循环链...

  • 数据结构

    数据结构 数据结构概念 顺序表 链表 队列 栈 二叉树 常用排序算法

  • 数据结构和算法总结

    常用数据结构: 数组,栈,队列,链表(单向链表,双端链表,双向链表),哈希表(hash table),树(二叉树,...

  • 基础知识点

    10 个数据结构: 数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树’; 10 个算法: 递归、排...

  • 算法概览

    重点掌握的数据结构与算法:10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10...

  • 02 | 如何抓住重点,系统高效地学习数据结构与算法?

    10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树; 10 个算法:递归、排序、二...

  • 第一节 内容概括

    10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树; 10 个算法:递归、排序、二...

  • 算法导论 基本数据结构

    MIT公开课没有讲到的内容,介绍几种基本数据结构- 栈和队列- 链表- 二叉树 栈和队列 栈和队列都是动态集合,元...

网友评论

    本文标题:Python数据结构(栈, 队列, 二叉树, 链表, 图)

    本文链接:https://www.haomeiwen.com/subject/dqvbfxtx.html