双向链表的实现代码

main.c代码如下:

插入数据代码如下:HEAD是头插,TAIL是尾插,default是任意位置

显示表内数据代码如下:

删除表内数据元素代码如下:一样分为头删,尾删,以及任何位置的删除。

 

倒序输出:这里只实现了输出的倒序,没有进行数据的重新排列!!请注意

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
双向链表(Doubly Linked List)是一种数据结构,其中每个节点都有两个指针,分别指向前一个节点和后一个节点。在Python中,我们可以使用类来实现双向链表。下面是一个简单的双向链表实现示例: ```python class Node: def __init__(self, data): self.data = data self.prev = None self.next = None class DoublyLinkedList: def __init__(self): self.head = None # 插入节点到链头部 def insert_at_start(self, data): new_node = Node(data) if self.head is not None: new_node.next = self.head self.head.prev = new_node self.head = new_node # 在链尾部插入节点 def insert_at_end(self, data): new_node = Node(data) if self.head is not None: cur_node = self.head while cur_node.next: cur_node = cur_node.next cur_node.next = new_node new_node.prev = cur_node else: self.head = new_node # 删除指定节点 def delete_node(self, key): cur_node = self.head if cur_node and cur_node.data == key: self.head = cur_node.next if self.head: self.head.prev = None return prev_node = None while cur_node and cur_node.data != key: prev_node = cur_node cur_node = cur_node.next if cur_node is None: return prev_node.next = cur_node.next if cur_node.next: cur_node.next.prev = prev_node # 遍历并打印链 def print_list(self): cur_node = self.head while cur_node: print(cur_node.data, end=" <-> ") cur_node = cur_node.next print("None") # 使用示例 dll = DoublyLinkedList() dll.insert_at_start(3) dll.insert_at_start(1) dll.insert_at_end(4) dll.print_list() # 输出: 1 <-> 3 <-> 4 <-> None dll.delete_node(3) dll.print_list() # 输出: 1 <-> 4 <-> None ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值