- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 2-way Intlist,其中每个节点都有对其上一个和下一个节点的引用。一切似乎都很好,但是当我使用 Push_front() 方法在开头添加节点时,它们没有上一个引用。
list.push_front(2);
list.push_front(1);
2 不会引用 1。这是我的代码。
内部节点
#ifndef INTNODE_H_
#define INTNODE_H_
class IntNode {
friend class IntList;
private:
int data;
IntNode * prev;
IntNode * next;
public:
IntNode(IntNode * previous = 0, IntNode * nextnode = 0):data(0), prev(previous), next(nextnode){};
IntNode(int data = 0, IntNode * previous = 0, IntNode * nextnode = 0):data(data),prev(previous),next(nextnode){};
int getData() const {return data;}
IntNode * getprev() const {return prev;}
IntNode * getnext() const {return next;}
void setPrev(IntNode * node){this->prev = node;}
};
#endif
Intlist.h
#ifndef INTLIST_H_
#define INTLIST_H_
#include "IntNode.h"
#include <iostream>
class IntList {
private:
IntNode * first;
public:
IntList():first(0){};
IntList(IntNode * firstnode):first(firstnode){};
void push_back(int data);
void push_front(int data);
void delete_first();
void delete_last();
friend std::ostream& operator<<(std::ostream& out, const IntList& list);
IntNode* getFirst() const {return first;}
};
#endif
IntList.cpp
#include "IntList.h"
void IntList::push_back(int data){
if(first){
IntNode * node = first;
while(node->next != 0){
node = node->next;
}
node->next = new IntNode(data,node,0);
}else{
first = new IntNode(data);
}
}
void IntList::push_front(int data){
//first = new IntNode(data,0,first); //prev = 0, no reference when is sec node
first->setPrev(new IntNode(data,0,first));
}
void IntList::delete_first(){
if(first){
if(first->next != 0){
first = first->next;
first->setPrev(0);
}else{first = 0;}
}
}
void IntList::delete_last(){
if(first){
IntNode * temp = first;
while(temp->next != 0){temp = temp->next;}
IntNode * node = temp->prev;
node->next=0;
delete temp;
}
}
std::ostream& operator<<(std::ostream& out, const IntList& list){
if(list.first){
IntNode * node = list.first;
out << node->getData();
while(node->getnext() !=0){
node = node->getnext();
out << node->getData();
}
}
return out;
}
最佳答案
如果你想实现一个 Push_front 新添加的节点成为第一个节点,这不会发生在你的代码中。
这应该有效。
void IntList::push_front(int data)
{
IntNode *newfirst = new IntNode(data, 0, first);
if (first) {
first->setPrev(newFirst);
}
first = newFirst;
}
关于c++ - 2-way intlist c++ push_front,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852899/
我有一个充满特定数字的链表,称为 intList。什么会 intList.push_front(2 * intList.back()); 对我的 list 做什么? 最佳答案 它会在列表的前面加上列表
我看不懂这张图,我知道 tail 表示列表结尾,但是像这样:L.tail.tail = N.tail.tail.tail.tail???怎么可能呢? 最佳答案 这里的tail表示下一个指针。现在检查图
hill(+IntList) succeeds if IntList consists of monotonically increasing >integers followed by monoto
我尝试使用名为 fastutil 的集合包,但无法创建 IntList 的实例。 我尝试过使用默认构造函数调用,但没有成功。 IntList foo = new IntList(); 如何创建 Int
我想制作一个带有安全密码的锁屏。我将密码存储在 IntList password 中,当用户单击按钮时,尝试将使用按钮 ID 附加到 IntList attempt(这部分工作正常): IntList
我正在编写一个 2-way Intlist,其中每个节点都有对其上一个和下一个节点的引用。一切似乎都很好,但是当我使用 Push_front() 方法在开头添加节点时,它们没有上一个引用。 list.
我正在将一个 txt 文件中的数千个数字插入到一个列表中,我想每 5 个数字对它们进行排序。这可能吗?如果可能,如何实现? public static void readFromFile()
我正在尝试对一些 ( Mutable ) IntList 进行排序对象。装箱/拆箱整数的成本与我的程序相关(这正是我使用原始集合的原因)。我想按以下标准排序: 所有负数都在非负数之前 首先是最小(最接
处理 3.5.3 中的 JavaScript 代码无法正常工作,不知道为什么。它应该创建圆圈并让它们在屏幕上弹跳,但它创建了适量的圆圈,但它们不移动。似乎 intlist.set() 不起作用,但我不
我正在尝试在处理中制作一个小型射击游戏,当我单击鼠标按钮时,我会创建一些在屏幕上移动的子弹,当它们离开屏幕时它们应该消失,我使用 IntList 我保留这样的值:(X1, Y1, X2, Y2, ..
全部,完成学期并使用 vector 完成此学生作业。在执行 int remove() 函数期间出现间歇性 bad_alloc 错误和核心转储。我相信当我使用 intList.pop_back() 时会
我有一个 Eclipse Collections IntList .我怎么能 创建 Java IntStream从这个列表 创建 Java Stream从这个列表 不复制元素? 最佳答案 与 Ecli
我是一名优秀的程序员,十分优秀!