linked-list相关内容

链表,在末尾插入 C++

我正在编写一个简单的函数来插入到 C++ 链表的末尾,但最后它只显示了第一个数据.我无法弄清楚出了什么问题.这是功能: void InsertAtEnd (node* &firstNode, string name){节点*临时=第一个节点;while(temp!=NULL) temp=temp->next;temp = 新节点;温度->数据=名称;temp->next=NULL;if(firs ..
发布时间:2022-01-01 18:46:58 C/C++开发

在 C++ 中对链表进行排序

我对无限循环很生气,您认为什么是合适的解决方案? 空排序(){节点 * 临时头 = 头;节点 * 临时节点 = NULL;for (int i=0; idata>temphead->next->data){tempnode = temphead;temphead = temphead->next;temphead->next = tempnode;}temphead=temphead->next ..
发布时间:2022-01-01 18:46:49 C/C++开发

交换双链表中的节点

我正在尝试实现一个交换双链表的两个节点的函数,以便对当前目录的内容进行排序.但是我的函数似乎“删除"了我列表中的一些元素,这是代码: void node_swap(struct s_node *left, struct s_node *right){结构 s_node *tmp;tmp = left->prev;如果 (tmp){tmp->next = 正确;right->prev = tmp; ..
发布时间:2022-01-01 18:46:41 其他开发

不要更新 JTable

我找到了更新数据的示例,但它使用的是 DefaultTableModel.当我创建我自己的 TableModel 和我自己的数据类时,当我将数据添加到 JTable 时,它​​不会更新. 如何向 TableModel 添加侦听器? 这是我的代码: 打包者;导入 java.awt.BorderLayout;导入 java.awt.event.ActionEvent;导入 java.ut ..
发布时间:2022-01-01 18:46:31 Java开发

在 Java 中测量单向链表的大小/长度?

我需要帮助为 Java 中的单向链表制作 int size(); 方法. 这是我目前所拥有的,但它没有返回列表的正确大小. public int size(){整数大小 = 0;节点 CurrNode = head;while(CurrNode.next != null){CurrNode = CurrNode.next;尺寸++;}退货尺寸;} 有人可以帮我用 Java 实现这个方法吗 ..
发布时间:2022-01-01 18:46:18 Java开发

用于在链表中查找结点的生产代码

我在一些采访中被问到这个问题. 我被要求在 O(1) 空间和线性时间的生产环境中编写用于在链表(Y 形式,双臂不一定相等)中查找结点的代码. 我想出了这个解决方案(我以前在某处见过): 1. 测量两个列表的长度,让它们分别为 l1 和 l22. 将较大列表的指针移动|(l1-l2)|.3. 现在一起移动两个指针,如果它们指向相同的位置,那是路口. 面试官:你的代码将如何处理? C ..
发布时间:2022-01-01 18:46:10 C/C++开发

如何在单次遍历中找到单个链表的中间节点(如果没有给出链表的长度)

我有一个问题陈述,如:“如何仅在一次遍历中找到单向链表的中间节点,而问题是我们不知道链表中的节点数?" 我有一个答案,比如“当你遍历链表并增加一个计数器直到你到达链表的末尾时,取一个向量并开始推送所有节点的地址".所以最后我们可以得到列表中的节点数,如果偶数 (counter/2) 或奇数 (counter/2 + counter%2) 给出中间节点数,我们就可以得到 vectore.at( ..
发布时间:2022-01-01 18:46:00 C/C++开发

如何在 Ruby 中反转链表

在下面的突变示例中,我不明白链表是如何反转的. class LinkedListNodeattr_accessor :value, :next_nodedef 初始化(值,next_node=nil)@值 = 值@next_node = next_node结尾结尾def print_values(list_node)打印“#{list_node.value} -->"如果 list_node.n ..
发布时间:2022-01-01 18:45:49 其他开发

线程安全的排序链表

我正在尝试编写一个线程安全的排序单链表.我写了两个版本:粗粒度同步和细粒度同步.下面是两个实现: 细粒度: public void add(T t) {节点 curr = head;curr.lock.lock();while (curr.next != null) {//不变量:curr 被锁定//不变量:curr.data 粗粒度: public void add(T t) {锁 ..
发布时间:2022-01-01 18:45:43 Java开发

将列表与涉及布尔值的多个属性进行比较

我有一些类实现了比较器接口,通过添加患者对象对 ArrayList 进行排序,我想按多个属性对列表进行排序,并且仅使用枚举进行排序没有问题,但是我想通过使用排序来覆盖这种排序布尔值.我知道我不能使用 compareTo 方法,因为它不是 Wrapper 类,但我无法找到一种合适的方法通过 boolean 对列表进行排序. 任何帮助将不胜感激. public Patient(int nhs ..
发布时间:2022-01-01 18:45:37 Java开发

在一个数组算法中实现 K 个堆栈

如何在一个数组中实现 K 个堆栈,并具有最佳的存储使用率(堆栈应该是动态的)? 解决方案 好吧,如果你只担心空间使用,而不关心栈操作会占用O(N),您可以使用数组的前几个单元格来管理堆栈: Array[0] - 栈尾 0 Array[1] - 栈 1 的结尾 ... Array[K-1] = 栈尾 K Stack n 从 Array[n-1] 开始,到 Arr ..
发布时间:2022-01-01 18:45:27 其他开发

纯链表、链表和双链表:何时以及为什么?

我应该在什么情况下使用每种列表?各有什么优点? 解决方案 普通列表: 按顺序存储每个项目,因此随机查找非常快(即我可以立即说“我想要第 657415671567 个元素,然后直接找到它,因为我们知道它的内存地址将正好比第一个项目大 657415671567).这在存储中几乎没有或没有内存开销.但是,它无法自动调整大小 - 您必须创建一个新数组,复制所有值,然后删除旧数组.当您需要从列 ..
发布时间:2022-01-01 18:45:19 其他开发

反转链表数据结构代码需要视觉解释指南吗?

我有以下用于反转链表的代码.我在 while 循环中感到困惑,所以如果有人能提供它实际工作方式的视觉解释,我肯定会很感激. static void Reverse (struct node** headRef){结构节点 * 结果 = NULL;结构节点 * 当前 = *headref;结构节点*下一个;而(当前!= NULL){下一个=当前->下一个;当前->下一个=结果;结果 = 当前;当 ..
发布时间:2022-01-01 18:45:10 其他开发

在 MySQL 中创建链表或类似队列?

我有一个需要按特定顺序显示的项目表,但该顺序可以更改.可以在开头、结尾或中间添加项目,并且可以重新排列项目.我如何设置表格以跟踪该订单,以便易于修改,但也可以通过单个查询按顺序获取列表? 例如,我可以有一个“NEXT_ID"列来执行链接列表样式,但是我将如何运行 SELECT 查询以按 NEXT_ID 链的顺序获取行? 为我可能遗漏的超级明显的解决方案提前道歉. 解决方案 我经 ..
发布时间:2022-01-01 18:45:03 数据库

使用向量类实现堆栈的链表与动态数组

我正在阅读实现堆栈的两种不同方式:链表和动态数组.链表相对于动态数组的主要优点是链表不必调整大小,而如果插入的元素过多,则必须调整动态数组的大小,从而浪费大量时间和内存. 这让我想知道这是否适用于 C++(因为有一个向量类,它会在插入新元素时自动调整大小)? 解决方案 这两者很难比较,因为它们的内存使用模式大不相同. 矢量调整大小 矢量会根据需要动态调整自身大小.它通过分 ..
发布时间:2022-01-01 18:44:53 C/C++开发

如何在不遍历链表的情况下计算链表中的节点数?

我在面试中被问到如何在不遍历链表的情况下计算链表中的节点数?有什么办法可以做到这一点吗? 解决方案 我能想到的唯一方法是添加一个节点数计数器,每次 add 或 insert 方法被调用,并在 delete 被调用时递减.你不能对内存占用做出假设,因为作为一个链表,你不能保证所有节点都在同一个内存块中(实际上,这是极不可能的). ..
发布时间:2022-01-01 18:44:30 其他开发

删除单个链表中一个元素的算法,复杂度为 O(1)

我是德国的计算机科学专业的学生.我的教授提出使用以下问题来思考: '给定对单个链表中的节点(不是最后一个节点)的引用.给出一个算法从列表中删除该元素,该元素的复杂度为 O(1),同时保持完整性'. 我想过这个,但我很确定,没有这样的算法.因为它是一个单链表,你必须遍历链表中的每个节点,直到到达应该删除的节点,因为你必须在删除之前修改节点中的next-Pointer.这会导致 O(n) ..
发布时间:2022-01-01 18:44:21 其他开发

O(1) 时间内的链表连接

我遇到了一个有趣的问题,但我对提供给我的答案感到困惑.问题如下: 2 个列表的连接可以执行 O(1) 次.应该使用以下哪个列表实现?- 单链表- 双向链表- 循环链表- 链表的数组实现 我最初认为 DLL 是正确的选择,因为连接可以从双方发生,但答案似乎是 CLL.我很迷惑.任何解释都将是最有帮助的.谢谢. 解决方案 您可以使用单链表或双链表在 O(1) 时间内轻松连接两个列表,前提是 ..
发布时间:2022-01-01 18:44:15 其他开发