-5
#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;
}
目标是拆除有序链表 重复我也随机分配0,0,1,1,2,2,3,3,4,4到列表 线节点[ I]的.next =节点[I] .next->接下来不执行与今后我没有得到期望的输出...为什么这个程序无法正常工作,我认为错误在链接列表中?
** C **不甚至有'std :: cout' - 那就是C++。另外:[调试](http://idownvotedbecau.se/nodebugging/)。 –
我建议正确缩进代码,应用编码有帮助的编码风格发现了许多错误。 – Yunnosch
你不要用next来遍历列表。你总是遍历底层数组 - 它永远不会改变 –