C++ 为什么这个程序不工作,我认为错误是在链表分配? #包括 #包括 #包括 int main(int argc,char const*argv[]{ 结构sam{ int数据; 结构sam*下一步; }; 结构sam节点[11]; 对于(int i=0;i
原始节点数组C++ 为什么这个程序不工作,我认为错误是在链表分配? #包括 #包括 #包括 int main(int argc,char const*argv[]{ 结构sam{ int数据; 结构sam*下一步; }; 结构sam节点[11]; 对于(int i=0;i,c++,data-structures,C++,Data Structures,原始节点数组 #include <iostream> #include <stdlib.h> #include <stdio.h> int main(int argc, char const *argv[]) { struct sam{ int data; struct sam *next; }; struct sam node[11]; for(int i=0;i<10;i++){ node[i].da
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char const *argv[]) {
struct sam{
int data;
struct sam *next;
};
struct sam node[11];
for(int i=0;i<10;i++){
node[i].data = i/2;
node[i].next = &node[i+1];
}
node[10].next=NULL;
for (size_t i = 0;node[i].next!=NULL; i++) {
std::cout <<node[i].data<< '\t';
}
std::cout << '\n';
for(int i=0;node[i].next->next!=NULL;i++){
if(node[i].data == node[i].next->data){
node[i].next = node[i].next->next;
}
}
for (size_t i = 0;node[i].next!=NULL; i++) {
std::cout << "Data is " <<node[i].data<< '\t';
}
return 0;
}
下一步设置后
+-------------------------------------------------+
data | 0 | 0 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | Garbage |
+-------------------------------------------------+
Next 1 2 3 4 5 6 7 8 9 10 NULL
所以,如果您使用下一个指针从头部节点转到下一个节点,您将看到过滤列表
但由于使用原始索引方法,所以仍然可以看到所有节点
我将next显示为索引,只是为了说明,而不是实际的指针值-所以您看到next==2-这意味着指针指向数组成员节点[2]c甚至没有<代码>:ST::cOUT/COD>——也就是:C++。我建议正确地缩进代码,很多错误是通过应用编码帮助编码方式找到的。你不使用NeXT来浏览列表。你总是在底层数组上迭代,而且它永远不会改变。你认为这行是什么?没有执行?@ArtemyVysotsky,你想回答吗?
+-------------------------------------------------+
data | 0 | 0 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | Garbage |
+-------------------------------------------------+
Next 2 2 4 4 6 6 8 8 10 10 NULL