zoukankan      html  css  js  c++  java
  • 图的邻接表的实现

    class list_node:
        def __init__(self):
            self.val = 0
            self.next = None
    #创建链表类
    
    head = [list_node()] * 6  # 声明一个节点类型的链表
    
    newnode = list_node()
    
    # 图的数组声明
    data = [[1, 2], [2, 1], [2, 5], [5, 2], 
            [2, 3], [3, 2], [2, 4], [4, 2], 
            [3, 4], [4, 3], [3, 5], [5, 3], 
            [4, 5], [5, 4]]
    
    print('图的邻接表内容:')
    print('----------------------------------')
    for i in range(1, 6):
        head[i].val = i  # 链表头head
        head[i].next = None
        print('顶点 %d =>' % i, end='')  # 把顶点值打印出来
        ptr = head[i]
        for j in range(14):  # 遍历图的数组
            if data[j][0] == i:  # 如果节点值=i,加入节点到链表头
                #print('######', newnode.val)
                newnode.val = data[j][1]  # 声明新节点,值为终点值
                newnode.next = None
                while ptr != None:  # 判断是否为链表的末尾
                    ptr = ptr.next
                ptr = newnode  # 加入新节点
                print('[%d] ' % newnode.val, end='')  # 打印相邻顶点
        print()

  • 相关阅读:
    scala学习手记7
    scala学习手记6
    scala学习手记5
    scala学习手记4
    scala学习手记3
    scala学习手记2
    Scala学习手记1
    Java实现的一个小说采集程序
    Java的值传递和引用传递
    java 使用反射
  • 原文地址:https://www.cnblogs.com/jzxs/p/10846314.html
Copyright © 2011-2022 走看看