我们可以像在数组中那样在另一个链表中遍历时形成另一个或在链表的节点中插入值吗。不知道为什么,但我的代码中即将出现一些错误。就像它进入了无限循环,尽管有正确的逻辑和代码可以做到这一点。我粘贴了重要的代码,因为它很长,所以看起来不完整。我已经在代码中插入了head1指向的linkedlist中的值和字符。
#include <iostream>
using namespace std;
struct node
{
char data1;
int data2;
node *link;
};
node *head1=NULL;
node *head=NULL;
void insert_at_end(char x,int y)
{
node *temp2=new node;
temp2->data1=x;
temp2->data2=y;
temp2->link=NULL;
if(head==NULL)
{head=temp2;}
else
{
node *temp3=head;
while(temp3->link!=NULL)
{
temp3=temp3->link;
}
temp3->link=temp3;
}
}
//in main function//
node *temp7=head1;
while(temp7!=NULL)
{
insert_at_end(temp7->data1,temp7->data2);
if(temp7->data2==A[num])
break;
temp7=temp7->link;
}
如果你可以使用C++11或更新版本,你可以使用STL,让生活更轻松。在编译器选项中,只需添加文本-std=c++11
:
#include <list>
struct node
{
char data1;
int data2;
node() : data1(0), data2(0) {}
node(char x, int y) : data1(x), data2(y) {}
};
std::list<node> myList;
void main()
{
// Add something to the end - insert_at_end.
myList.push_back(node('c', 42));
// Look for items in the list.
for(auto& item : myList)
{
if(item.data2 == A[num])
{
// Do something here if you found the item you're looking for.
}
}
}