LinkedList节点插入
LinkedList Node Insertion
我知道这是非常基本的东西,但是我一生似乎不明白我将如何做到这一点:
Q:给定以下结构定义:
struct Node
{
int value;
Node* next;
};
并给定声明:
Node* head;
已经构建了以下节点的链接列表,将头指针分配给节点对象3:
head ----> 3 ----> 9 ----> 34 ----> -5 ----> NULL
编写一个单个C 语句,该语句将将值34存储在第三节点中的变量结果:
int result =
从哪里开始的好地方?这是要求我在列表中添加一个元素,还是在列表中添加一个全新的节点?如此困惑!
head->next->next
将指向链接列表中的第三个节点。所以,
int result = head->next->next->data;
将将值存储在列表中的第三个节点中。
问题是要求您阅读第三个节点并将其值存储在结果中。
链接列表采用链概念,其中沿着的每个链链链路沿链条的整个链路>链条的长度连接在 front 的每个链接。
人们以各种方式代表这一点。一个例子是:
struct Node {
int value;
Node* front;
};
或:
struct Node {
int value;
Node* next;
};
当您建立链接列表的头部时,您正在创建链中的第一个节点:
Node* head;
head = NULL; // this is an empty linked list
每当您想向链中添加节点(或"链接")时,您就将新节点传递给" head",这会跟踪链条:
void newNode(int value, Node* head)
{
Node *node;
node = new Node*; // or (Node*)malloc(sizeof(Node));
node->value = value;
node->next = head;
head = node;
}
使用此概念,您可以向链条添加任意数量的链接。托马斯(Thomas)和沃恩(Warun)有很好的例子。希望这可以帮助。
循环的示例。
Node* temp = head;
int number = 300; //the place you are looking for
if(temp)
{
int i;
for(i = 0 ; i< number && temp->next != nullptr ;i++)
{
temp = temp->next;
}
if(i == 300)
{
//found you value;
result = temp->value;
}
}
相关文章:
- 在具有开放寻址的哈希表中插入节点 [优化逻辑]
- 使用代码块在链表的开头插入节点
- 使用 C++ 在 BTree 中递归插入节点
- 在单链表中的后端插入节点
- 在索引中插入节点:链接列表未正确返回列表
- 以分类方式插入节点时遇到麻烦
- 链表,在尾部后面插入节点
- 在 BST 中插入节点时出现逻辑错误
- 简单树插入节点函数显示为空
- 在链表的末尾插入节点
- Quadtree不会插入节点或拆分
- 这是在双链表的第一个节点之后插入节点的正确方法吗?
- 在链表中的第 n 个位置插入节点
- 在链表运行时插入节点错误
- 在链表前面插入节点
- C++ 链表 - 插入节点函数不会更新函数范围之外的值
- 使用 C++ 在单向链表的指定位置插入节点时出现分段错误
- C :指针与指针指针在二进制树中插入节点
- 在链接列表C 中的某个位置插入节点
- 在双向链表中插入节点