首页 文章
  • 2685 votes
     answers
     views

    何时在Java中使用LinkedList over ArrayList?

    我一直只是一个人使用: List<String> names = new ArrayList<>(); 我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码 . 应该LinkedList何时使用ArrayList,反之亦然?
  • 0 votes
     answers
     views

    使用指向结构的指针在C中创建链表和内存分配

    我想有一个概念问题 . 当我需要创建一个链表时,我只是给了一个指向结构的指针(并且struct包含一些数据类型和指针“next”) . 我如何确保创建其他链接而不仅仅是根节点?我没有使用malloc,否则这将是更明显的答案 . 此列表充当malloc本身 . 提前致谢! To Clarify: 将有单维数组,它将作为固定大小的内存块 . 然后链接列表将通过删除节点并将其放入数组中来“分配”,或者通...
  • 0 votes
     answers
     views

    动态内存分配C.

    我的问题需要将固定数组大小转换为动态内存分配 . 我尝试过各种calloc,malloc和relloc语句但似乎没什么用 . 我想即使是一个void *数据指针也没用 . 请将此代码转换为动态内存,以便稍后调整数组大小 . 另外要添加我正在使用链表,所以这个数组是一个Node指针 . Node *lists[100] //this does my job lists[listNo] = NUL...
  • 0 votes
     answers
     views

    在没有动态分配的情况下保留结构

    我一直在和这个问题争斗几个小时 . 我有一个双向链表实现,不需要动态内存分配 . 这是插入方法 . 它在 before 之前插入 elem . struct list 有两个成员, struct list_elem *next 和 struct list_elem *prev . list_elem 是一个包含一些数据的结构 . 请注意,此列表实现是正确的 . 问题在于我使用它的方式 ...
  • 0 votes
     answers
     views

    使用hash(#)符号表示数据库链表C程序的命令输入换行符?

    嗨,由于我的大学项目,我正在做一个基于线性单链表的C数据库程序 . 我不理解的问题是输入和输出程序 . 基本上,程序的输入应该是这样的 INSERT 001 // indicates patient's number John // indicates patient's name M // indicates patient's gender # 002 Mary F # SELECT // ...
  • -1 votes
     answers
     views

    c编程中的分段故障链表

    当我运行它们时,以下功能之一导致分段错误 . 对他来说,他们看起来应该工作 . 我怀疑它与我使用malloc的方式有关 . 如果有人能指出哪个文件产生错误,我将永远感激不尽 . 这些功能非常自我解释 . 第一个从文件读取和int,并将包含int的节点添加到链表的开头 . 第二个做同样的事情,但将节点添加到最后 . 第三个删除链表中的第三个节点,最后一个删除最后一个节点 . LinkedList r...
  • 1 votes
     answers
     views

    如何删除c中链表的第一个节点

    我一直在尝试从单个链表中删除第一个节点 . 我做的是如下 创建指向头节点的临时节点 将头部移动到下一个节点 释放临时节点并返回头部 生成一个简单的链表后: 1 - > 2 -> 3 -> 4 -> 5 并调用我的方法删除第一个节点,结果是不正确的 . 它返回以下链表: 0 -> 2 -> 3 -> 4 -> 5 我不明白为什么 0 仍...
  • 0 votes
     answers
     views

    删除链接列表中的所有节点

    我有一个链表包含3个节点,如图所示: 有一个头指针和temp1指针指向列表的前面,尾点指向列表的末尾 . 我想删除所有节点,并将其更改回其原始初始形式(tail = NULL,head = first_node,但第一个节点在数据和下一个字段中没有任何值) . 因为我想开始在其中添加一些新值 . 要删除所有这些数据,此代码是否会删除此链接列表中的节点,并留下第一个节点,数据和下一个字段中没有值? ...
  • 4 votes
     answers
     views

    链接列表和通过* headRef删除节点

    我正在处理一些指针/链接列表问题 . 其中一个问题是删除列表中的所有节点并将头指向NULL . 我的解决方案与给定的答案不同 . 我无法弄清楚我是否以及为什么没有试图了解 free(*headRef); 的结果是什么,以及 *headRef 之后是否可以共享一个不同的指针 . 我的想法是:因为我有 compliment 指向下一个节点,我可以释放指向第一个节点的 *headRef (或者更一般地,...
  • -4 votes
     answers
     views

    从单个链接列表中删除节点

    我有这个问题:给你一个单链表L,其中L中的每个节点存储一个整数键,以及指向L中下一个节点的指针 . 最后一个节点将其下一个节点设置为NULL . 您将获得指向存储密钥k的节点的指针ptr,该密钥不是列表中的最后一个节点 . 显示如何从给定ptr指向包含k的节点的指针的列表中删除密钥k;你的算法应该具有时间复杂度O(1),即它应该与列表的长度无关 . 假设你有指向L的头部和尾部节点的指针 . 我知道...
  • 1 votes
     answers
     views

    c中的双链表实现

    我正在努力提高我的c编程技能,所以开始尝试编写双链表 . 这是我到目前为止所提出的 . #include <stdio.h> #include <stdlib.h> #include <malloc.h> //forward definition typedef struct Node node_t; //Define the structures nee...
  • 0 votes
     answers
     views

    删除链表中间的节点

    我写了一段使用链表的代码 . 我让用户输入几个数字,然后要求用户输入他希望删除的数字的索引 . 我做了一些研究,发现我需要检查下一个节点是否是我要删除的节点,然后有2个临时指针指向当前节点和下一个节点(我想要删除的节点),然后将第一个临时指针的下一个节点分配给第二个临时指针的下一个节点,然后最后释放第二个临时指针 . 这是我的代码: #include <stdio.h> #includ...
  • 2 votes
     answers
     views

    根据密钥从链表中删除节点

    您好我正在尝试删除基于密钥的节点 . 我正在学习字典实现,并决定从头开始实现它以完全理解这个概念 . 我成功地能够使用2个节点引用添加和返回值的头尾指针 . 但是我很难使用密钥从列表中删除节点 . 下面是我要从列表中删除的代码 public V remove(K key) { V result = null; if(!this.isEmpty()&&head==tail...
  • -1 votes
     answers
     views

    如何在C中删除整个循环链表?

    我遇到了C的stdlib的free()函数的问题,我的知识这个函数一次只能删除链表的给定节点,如何使用这个函数删除整个循环链表? 我是否必须使指针指向循环链表的头部,并且逐个节点地自由,并且小心地使每个指针从下一个节点开始,在我可以释放该节点之前将其指向NULL?如果是这样,我如何释放头节点?
  • 181 votes
     answers
     views

    数组与链表

    为什么有人想在阵列上使用链表? 毫无疑问,对链接列表进行编码比使用数组要多一些工作,人们可能想知道什么是合理的额外工作 . 我认为在链表中插入新元素是微不足道的,但它是数组中的一项重要工作 . 使用链表存储一组数据与将其存储在数组中是否还有其他优点? 这个问题不是this question的重复,因为另一个问题是具体询问特定的Java类,而这个问题与一般数据结构有关 .
  • 160 votes
     answers
     views

    Python链接列表

    在python中使用链表的最简单方法是什么?在方案中,链接列表仅由 '(1 2 3 4 5) 定义 . Python的列表, [1, 2, 3, 4, 5] 和元组, (1, 2, 3, 4, 5) 实际上不是链表,链表有一些很好的属性,如常量时间连接,并能够引用它们的不同部分 . 让它们一成不变,它们真的很容易合作!
  • 388 votes
     answers
     views

    如何检测链表中的循环?

    假设您在Java中有一个链表结构 . 它由节点组成: class Node { Node next; // some user data } 每个节点指向下一个节点,最后一个节点除外 . 假设列表有可能包含循环 - 即最终节点而不是具有空值,则引用列表中的一个节点,该节点位于它之前 . 什么是最好的写作方式 boolean hasLoop(Node first) 如果给定节点是...
  • 3 votes
     answers
     views

    链表中的分段错误

    编辑:Dijkstra的答案是解决这个问题的方法 . 我的列表未初始化为NULL 我正在处理链接列表以存储唯一的单词列表,当我尝试遍历列表时会出现段错误 . Gdb给了我: Program received signal SIGSEGV, Segmentation fault. 0x0000003a07e47ff7 in vfprintf () from /lib64/libc.so....
  • 4 votes
     answers
     views

    打印链表时,最后一个元素值出现在第一个和最后一个位置

    新年快乐 . 这个问题源于一个在C中编写一个名为Laby-chiffres的游戏的项目 . 要在这个链接中看到第三批游戏中的游戏:http://www.rci-jeux.com/jeux/labychiffres/laby.swf . Context :我使用链接列表来存储玩家通过数字网格所采用的路径 . 正确记录每个号码的玩家's aim is to find a path from the d...
  • 0 votes
     answers
     views

    链表中的指针

    我正在研究列表(尝试重新创建它们),我遇到了一个奇怪的问题 . 这是我的结构: struct listNode{ listNode(int n, listNode* ne = NULL){ value = n; next = ne; } int value; listNode* next; }; listNode* head = NU...
  • 0 votes
     answers
     views

    链表 Build 但不能正常工作

    我在链表中有数字,我应该转换为char *并返回 . 这是问题可能存在的功能 . char* int_str(struct Node** head,char* result) //head is pointer to singly linked list { struct Node* temp = *head; char* string1=""; char* str...
  • 0 votes
     answers
     views

    在循环中插入链表节点

    我正在使用strtok()来解析输入,将字符串转换为int,然后将此int值插入到while循环中的链接列表中 . 这是我正在尝试做的事情(我没有明确地编写代码,但我打算做一些如下操作): while(fgets(&string,LMAX,fp) != NULL){ //get first token using strtok //convert to int //insert into...
  • 0 votes
     answers
     views

    从函数返回链表的头部

    我创建的函数接受两个链接结构列表的头部,并使用它们来更新第一个链表中结构的成员 . 一旦我的while循环完成,我希望返回结构'a'的头部,但是当我返回它时,由于while循环它的值为NULL . 一旦更新,我将如何返回'a'的头部?我知道我必须使用临时结构,但我将如何实现它? struct artist *update_counts(struct artist *a, struct play *...
  • -3 votes
     answers
     views

    创建节点的链接列表

    我想编写一个main函数,它将创建节点的链接列表,除了下一个字段之外,每个节点都在两个字段中保存两个int值 . (在主类之外创建一个struct节点 . )第一个int是一个计数节点数量另一个int是从1开始的Fibonacci序列中的下一个数字 . 继续在列表中添加节点,直到新节点中第二个字段中的值超过第一个字段* 1000中的值 . 在添加每个节点时,将计数输出到一行 . (不要在链表中添...
  • 0 votes
     answers
     views

    使用递归删除双向链表中的所有节点[关闭]

    我正在尝试编写一个函数,删除具有给定值的链表中的所有节点,但我想尝试使用递归函数 . 我认为删除列表中最后一个节点的代码块无意中将整个列表设置为null,但我不知道如何解决这个问题 . 编辑:整个列表不应该为空,它应该删除包含给定整数的所有节点 . 例如,如果给定列表是3-> 4-> 3-> 6并且我们想要删除3的所有实例,则列表将是4-> 6 typedef struct...
  • 0 votes
     answers
     views

    删除链表中的第一个节点仍会在结果中显示节点

    我在删除链表中的第一个节点时遇到了问题,当我删除其他节点成功后打印结果,但删除第一个节点时,它打印0和结构的最后两个成员 . 该函数应该传递一个指向链表的指针,提示用户输入一个ID号以查找删除节点,并返回列表 . struct dog *delete_from_list(struct dog *dogs){ int num; printf("Enter a dogs ID n...
  • 2 votes
     answers
     views

    C - 如何释放在其节点中具有链表的链表?

    作为我在内核空间编写的程序的一部分,我创建了一个链接列表,其节点中有另一个链表 . 节点可以是两种类型,可以是仅具有int值和char *值的通道,也可以是具有int值和通道链接列表的设备文件 . 但是我的freeList函数中有NULL指针引用 . 我得到的错误是:无法处理内核NULL指针取消引用 知道如何解决这个问题吗? struct node { int val; char*...
  • 8 votes
     answers
     views

    链接列表包含其他链接列表和免费

    我有一个通用的链表实现,其中包含一个包含void * to data的节点struct和一个包含对head的引用的list结构 . 现在这是我的问题,链表中的节点可以通过其void *保存对另一个链表的引用 . 当我释放包含较小列表的较大列表时,这会导致内存泄漏 . 所以我想知道有没有办法检查void *是否指向另一个列表,所以我跟随并释放它也只是数据 . 如果我在我的struct的开头添加一个关...
  • 4 votes
     answers
     views

    C编程链接列表删除位置N处的节点

    EDIT: Figured out the problem. Also if you found this through google or another search engine here is where I went wrong and how to fix it. 我的deleteNode()方法正确地使用正确的temp移动列表并保持头部不变 . 我出错的地方是因为该方法的结果我正在...
  • 1 votes
     answers
     views

    节点的链接列表插入什么都不显示

    #include<stdio.h> #include<stdlib.h> struct node { int data; struct node *next; }; void insert( struct node *q,int num) { struct node *temp; if( q == NULL) { ...

热门问题