Tag: 列表

带有指向下一个结构的指针?

我想要一个会话,我在链接列表中的size变量中插入了10个不同的整数。 我相信我应该使用result_register()吗? 当存储所有10个整数时,我想通过输入result-> size打印出来。 我是链接列表的新手,所以请保持温和。 struct result { int size; }; struct result* result_next() { // What do I type here? } void result_register(int size) { // What do I type here? } 主要 struct result* result; while ((result = result_next())) printf(“%d\n”, result->size); 然后我希望能够通过如上所述打印出结果。

C(.LST)中的列表文件

编译完一些代码后,编译器会生成一堆文件。 我有统计,符号,调用树,错误,列表,调试和exe。 除了列表文件之外,我已经弄明白了每个意思。 列表文件的function是什么。 是针对用户还是计算机/嵌入式系统本身?

C中的可变参数scanf

我很好奇是否有可能在C中实现一种可变版本的scanf 。我的意思是如果输入是push (1 2 3) , scanf将能够解析为%s %d %d %d像scanf(“%s (%d)”, string, some_list) 。 它将占用%d所有实例并将它们(按顺序)附加到列表中…… 我在说感觉吗? 编辑:对于指定的输入, string == “push”和some_list == [1, 2, 3] 。

修改C函数内的指针时出现问题

嗨,我正在尝试在C中实现一个喜欢的llist操作。我的方法是在头文件C文件中实现所有操作,并将其包含在主文件中以管理链接列表。 这是头文件linkedlist.h ,包含操作实现 //Here is my code for the node structure: struct node { struct node * next; char cinfo; }; //Here is a method to do a simple insertion in the begining of the list void beginInsertSL(char val, struct node ** root){ struct node *p = malloc(sizeof(struct node*)); p->cinfo = val; if(*root == NULL){ […]

存储Minhash的结果

结果是固定数量的数组,比如python中的列表(所有长度相同)。 人们可以将它看作矩阵,所以在c中我会使用一个数组,其中每个单元格都指向另一个数组。 如何用Python做到这一点? 每个项目都是列表或其他内容的列表? 我想到了一本字典,但关键是微不足道的,1,2,……,M,所以我不确定这是否是这里的pythonic方式。 我对实施不感兴趣,我对我应该遵循哪种方法感兴趣,我应该选择哪种方式!

冒泡排序双链表

我的双链表的泡泡分拣function有问题。 当我以单链接的方式对节点进行排序时(仅使用 – > next),它正在工作,但我无法使用 – > prev指针。 这是我正在使用的代码: void sort(int count) { struct data *tmp,*current,*nextone; int i,j; for(i=0;i<count;i++) { current = first; for(j=0;jnumber > current->next->number) { nextone = current->next; current->next = nextone->next; nextone->next = current; if(current == first) { first = nextone; current = nextone; } else { current = nextone; tmp->next = nextone; […]

为列表节点分配内存的安全方法

在一个简单的列表中,ex: struct Node { Node *next; void *data; } 如果我在一个分配中分配节点和数据(如果我知道大小),有什么问题,比如说 Node * t = (Node*)malloc(sizeof(Node) + DataSize)); 并始终在分配的块的末尾分配数据, t->data = (BYTE*)t+ sizeof(Node); /* BYTE is byte length, can use char in gcc */ 节点和数据将在sinlge go中删除,因此没有真正的问题紧密耦合它们(按设计) 我正在研究可移植性问题(特别是包装)或其他未知问题? 这种分配方式安全便携吗?

如何在C中随机混洗链表

我有一个链表,我想实现一个function: Random_Shuffle_List (struct node **Headptr) – 输出一个列表,使每个节点从其原始位置随机移动。 请帮我一个有效的算法来实现这一目标。

我在C中使用指针时遇到问题

有人可以向我解释这段代码是如何工作的。 我试着把它写出来然后把头包住,但我还是输了。 当你设置next->prev = prev next->prev和prev之间的价值差异是什么? 他们不是一样的价值吗? 对于下一行也是同样的问题。 我尝试写出一个ListElement结构来试图帮助理解,但我仍然感到困惑。 任何答案或帮助将不胜感激,或任何其他可以让我理解的参考。 我是一个视觉学习者,所以如果你碰巧知道这个很好的可视化,我会很感激。 int unlink(ListElement *element) { ListElement *next = element->next; ListElement *prev = element->prev; next->prev = prev; prev->next = next; return 0; }

使用一组有限的操作对2个50000个数字的链表进行排序

所以我有这个项目用于学校:我有一个包含5万个数字和第二个空列表的链表。 我只有一个非常有限的指示小组。 他们是 : “sa”交换了列表1的前两个元素 “sb”交换了清单2的前两个元素 “ss”同时是“sa”和“sb” “pa”:在列表1的顶部推送列表2的顶部元素 “pb”:在列表2的顶部推送列表1的顶部元素 “ra”:旋转列表1(第一个元素成为最后一个) “rb”:旋转列表2(第一个成为最后一个) “rr”:“ra”和“rb”立刻 “rra”:旋转列表1(最后成为第一个) “rrb”:旋转列表2(最后成为第一个) “rrr”:“rra”和“rrb”立刻 我必须在c中实现排序算法,目标是使用最少量的指令。 我尝试了一个非常简单的算法,旋转列表一直到最大值位于顶部,然后反复将其推入列表2,直到所有内容都在列表2中,然后将所有内容推回到列表1中,但我无法对列表进行排序在合理的时间内超过5k的数字