Python—构造单向链表数据类型

Posted zivli

tags:

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

# _*_ coding=utf-8 _*_


class Node:
    """
    创建链表的属性
    """

    def __init__(self, item):
        self.item = item
        self.next = None


def create_head_linklist(arr):
    """
    头插法创建链表
    :param arr:
    :return:
    """
    head = Node(arr[0])             # 确定头部元素
    for element in arr[1:]:
        node = Node(element)
        node.next = head            # 从头部插入元素
        head = node                 # 插入的元素成为头部元素

    return head


def create_tail_linklist(arr):
    """
    尾插法创建链表
    :param arr:
    :return:
    """
    head = Node(arr[0])
    tail = head                     # 开始链表为空,头尾指向同一个位置
    for element in arr[1:]:
        node = Node(element)
        tail.next = node            # 从尾部插入元素
        tail = node                 # 插入的元素成为尾部元素
    return head


def print_linklist(lk):
    while lk:
        print(lk.item, end=,)
        lk = lk.next


li = [1, 2, 3, 4, 5]
link_list1 = create_tail_linklist(li)
link_list2 = create_head_linklist(li)
print_linklist(link_list1)
print_linklist(link_list2)

   链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点的指针next。通过节点之间的相互连接,最终串联成一个链表。

以上是关于Python—构造单向链表数据类型的主要内容,如果未能解决你的问题,请参考以下文章

常用数据结构:单向链表和双向链表的实现

单向链表

C语言中数据结构中的单向链表的问题;

C语言初级链表(之有头节点的单向链表)

13单向链表

java对单向单向链表的操作