原理不太懂,可以讲解一下吗,附代码最好了,一个节点分别存储行,列,值?
1条回答 默认 最新
- 陈年椰子 2022-04-17 20:30关注
双链表 一般是指双向链表。 和二维数组没啥关系呀。
转为链表后,只能一个一个访问了, 双向链表只是多了一个可以从尾巴开始访问。
具体题目说一下。参考一下
class Node: def __init__(self, data, right=None, down = None): self.data = data self.right = right self.down = down self.rows = 1 self.cols = 1 def __repr__(self): ''' 用来定义Node的字符输出, print为输出data ''' return str(self.data) def Show(self): current_head = self col_i = 1 while current_head != None: current_index = current_head print(current_index.data,end = "") col_i = 1 while current_index.right != None: print(" - > ",end = "") current_index = current_index.right print(current_index.data, end="") col_i += 1 print(" - > NULL") print("| "*col_i) print("V " * col_i) current_head = current_head.down print("NULL "*col_i) def c_DLL(arr): # 构造函数 , 返回链表头 Node_lst = [[Node(x) for x in l] for l in arr] head = Node_lst[0][0] head.rows = len(arr) head.cols = len(arr[0]) for i in range(len(Node_lst)-1): for j in range(len(Node_lst[i])-1): Node_lst[i][j].right = Node_lst[i][j+1] Node_lst[i][j].down = Node_lst[i+1][j] Node_lst[i][-1].down = Node_lst[i + 1][-1] i = -1 for j in range(len(Node_lst[i]) - 1): Node_lst[i][j].right = Node_lst[i][j + 1] return head val_2DMatrix = [[1,2,3],[4,5,6],[7,8,9]] head = c_DLL(val_2DMatrix) head.Show()
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度