Python数据结构——上机考试

Posted huamanggg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据结构——上机考试相关的知识,希望对你有一定的参考价值。

实现一个链表,并构造一个方法,找到倒数第x个节点的值

# 单链表节点创建
class LNode:
    def __init__(self,elem,next = None):
        self.elem = elem
        self.next = next

# 单链表创建
class LList:
    def __init__(self):
        self.head = None# 头指针
        self.rear = None# 尾指针
        self.size = 0

    # 尾部插入
    def append(self,elem):
        last_node = LNode(elem,None)
        if self.head is None:
            self.head = last_node
            self.rear = last_node
            self.size += 1
            return
        p = self.rear
        self.rear = last_node
        p.next = last_node
        self.size += 1

    # 查询倒数第x个节点
    def find(self,x):
        num = self.size - x
        for each in range(num):
            self.head = self.head.next
        return self.head.elem
    
l = LList()
for i in range(1,8):
    l.append(i)
print(l.find(3))

实现一个二叉数,并构造一个方法求出树的深度

# 节点类
class Node():
    def __init__(self,elem):
        self.elem = elem
        self.left = None
        self.right = None
        
# 树的封装
class Tree():
    def __init__(self):
        # 根节点
        self.root = None

    # 增加节点
    def add(self,elem):
        # 实例化一个节点类
        node = Node(elem)
        tmp = [self.root]
        # 先判断根节点是否为空
        if self.root is None:
            self.root = node
            return
        while tmp:
            n = tmp.pop(0)
            # 取出第一个元素,判断他的左子节点,若没有就加上去
            if n.left is None:
                n.left = node
                return
            else:
                tmp.append(n.left)
            # 同理判断右子节点
            if n.right is None:
                n.right = node
                return
            else:
                tmp.append(n.right)

    #  利用递归实现对高度的记录
    def depth(self,node):
        if node is None:
            return 0
        else:
            l = self.depth(node.left) + 1
            r = self.depth(node.right) + 1
            return max(l,r)

t = Tree()
for i in range(9):
    t.add(i)

print(t.depth(t.root))

以上是关于Python数据结构——上机考试的主要内容,如果未能解决你的问题,请参考以下文章

华南农业大学数据结构上机考试

2015数据结构上机考试题解

项目-第六次全网备份上机考试

SQL Server 上机操作题 会做的速度进 急,,,

计算机二级C语言上机考试编程题修改如何改文件数据拿分?

NUAA操作系统OS实验及上机考试记录