我正在尝试使用时循环将元素添加到双向链表中。节点正在制作中,但它们都存储相同的单词,这是我正在阅读的文件的最后一个单词。这是我的时循环:
while(fscanf(text, "%s", word) == 1)
{
struct node *temp;
temp = new_node(word); //Creates a new node
temp->prev = cursor; //Cursor represents current position in linked list
temp->next = NULL;
cursor->next = temp;
cursor = temp;
}
在while循环开始之前,光标被初始化为列表的开头。
这是我的节点结构:
struct node
{
struct node* prev;
struct word_entry* data;
struct node* next;
};
我的时循环出了什么问题?为什么它总是覆盖以前的节点?请并谢谢你!
您的文件位于text
中,您正在将单词加载到名为word
的字符数组中。
由于循环将所有节点分配给同一个数组,temp=new_节点(word)
所有节点都指向同一个字符数组。
当您将文件中的最后一个单词读入
word
时,由于所有节点都指向它,因此它们都读出相同的单词。
您必须为每个节点分配单独的字存储,并在分配给节点时将字复制到该存储:
nodeword = malloc(strlen(word) + 1);
if(nodeword) {
strcpy(nodeword, word);
nodeword[strlen(word)] = 0;
temp = new_node(nodeword);
}
else {
break;
}
或者strdup()如果你愿意的话。。
给定单链接列表:
问题内容: 无论如何,有没有要监听元素的onload事件? F.ex: 这适用于元素,但不适用于。还有另一种方法吗?我只需要知道外部样式表中的样式何时应用于DOM。 更新: 将隐藏物添加到头部,然后在iframe中监听事件是否是一个主意?它应在加载CSS时触发,但可能无法保证它已在顶部窗口中加载… 问题答案: 这是一种hack,但是如果您可以编辑CSS,则可以添加一种特殊的样式(没有可见的效果),
我在课堂上有一个关于Java的作业。它是关于雇员的,所以有三个类,雇员,雇员列表和节点。我需要用这个做一个双链接列表。链表是我们定制的类,而不是Java提供的类。 现在我被困在添加(雇员)方法中。该方法输入参数一个雇员对象,并被要求添加到列表的末尾。 这是密码 简单地说,当列表为空时,该方法会将员工完美地添加到节点中,即使我将第二个员工添加到列表中,也没有问题;但当我再添加,并尝试检索它时,我最终
我正在尝试为一个项目创建一个双链接列表容器。我不能使用任何std容器。必须对双链接列表进行排序。以下是我目前的代码: 我遇到的问题是在我的插入函数中。我正在使用调试器,并在以下行插入代码:list.insert(10);。 它正确地进入第一种情况,即head==nullptr并创建节点。当我进入下一行代码(list.insert(20))时,它会用这一行创建一个节点:node*node=newno
主要内容:Python append()方法添加元素,Python extend()方法添加元素,Python insert()方法插入元素实际开发中,经常需要对 Python 列表进行更新,包括向列表中添加元素、修改表中元素以及删除元素。本节先来学习如何向列表中添加元素。 《 Python序列》一节告诉我们,使用 运算符可以将多个序列连接起来;列表是序列的一种,所以也可以使用 进行连接,这样就相当于在第一个列表的末尾添加了另一个列表。 请看下面的演示: 运行结果: language = ['P
lpush key string 在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型。注意:江湖规矩一般从左端Push,右端Pop,即LPush/RPop。 lpushx 也是将一个或者多个value插入到key列表的表头,但是如果key不存在,那么就什么都不在,返回一个false【rpushx也是同样】 rpush key string 同上,在尾部添加