在链表末尾添加一个节点
Posted
技术标签:
【中文标题】在链表末尾添加一个节点【英文标题】:adding a node at the end of a linked list 【发布时间】:2015-03-13 05:19:33 【问题描述】:我的程序在向链接它添加新节点时有点停滞不前,它应该被添加到列表的末尾,但我尽我所能但仍然有一个解决方案,希望如果你们中的任何人可以帮助我 提前谢谢你;
这是一段代码
#include <iostream>
using namespace std;
struct node
int data;
node* next;
;
node* head;
void insert(int x);
void numInsert();
void numSearch();
int main()
head=NULL;
int x,n;
cout <<"How many number? \n";
cin >>n;
for (int i=0; i<n; i++)
cout <<"Enter Number \n";
cin >> x;
node* newNode;
newNode = new node();
newNode->data=x;
newNode->next=head;
head=newNode;
/*
NewNode->next=NULL;
if (head !=NULL)
NewNode->next=head;
else
head=NewNode;
*/
int num;
cout<<"what number do you want to insert in the list \n";
cin>>num;
node *nNode;
nNode = new node();
nNode->data=num;
nNode->next=NULL;
node *prevNode;
node *currNode;
prevNode=NULL;
currNode=NULL;
node* nNode= new node;
nNode->data= num;
nNode->next= NULL;
currNode=NULL; prevNode=NULL;
for(currNode=head; currNode != NULL; currNode= currNode->next)
if (newNode->data <= currNode->data)
break;
prevNode = currNode;
newNode->next=prevNode->next;
prevNode->next=newNode;
return 0;
任何时候我运行它,到达一个点并且停止工作,请帮助我,任务今天到期,我不知道如何正确解决它
【问题讨论】:
欢迎来到 ***。您是否尝试过调试它,找出它为什么不起作用? 您是否考虑过使用一个类并将您的代码打包到函数中,而不是全部扔到main
中?
@Qwaiks 必须在列表末尾插入新值的函数的声明是什么?
调试了它但没有工作@mjuarez,是的,我尝试使用类并打包代码它从来没有真正掌握它,我无法真正理解我在做什么,实际上我是 C++ 编程的新手,请在这里帮助我
【参考方案1】:
#include <iostream>
using namespace std;
struct node
int data;
node* next;
;
node* head;
node* tail;
void insert(int x);
void numInsert();
void numSearch();
int main()
head=NULL;
tail = NULL;
int x,n;
cout <<"How many number? \n";
cin >>n;
for (int i=0; i<n; i++)
cout <<"Enter Number \n";
cin >> x;
if(head==NULL)
head = new node();
head->data = x;
head->next = NULL;
tail = head;
else
node* newNode;
newNode = new node();
newNode->data=x;
newNode->next = NULL;
tail->next = newNode;
tail = tail->next;
cout << "Linked List :" << "\n";
node* trav = head;
for (int i=0; i<n; i++)
cout << (trav->data) << '\n';
trav = trav->next;
int num;
cout<<"what number do you want to insert in the list \n";
cin>>num;
if(head==NULL)
head = new node();
head->data = num;
head->next = NULL;
tail = head;
else
node* newNode;
newNode = new node();
newNode->data=num;
newNode->next = NULL;
tail->next = newNode;
tail = tail->next;
cout << "Linked List :" << "\n";
trav = head;
while(trav != NULL)
cout << (trav->data) << '\n';
trav = trav->next;
return 0;
【讨论】:
你想在最后添加元素。这段代码就可以了。 可能比仅仅粘贴一大块固定版本更有用。 很酷,但我认为在链表中它应该被排序然后节点被添加到列表的末尾或者它不必那样工作 这取决于你想如何使用LinkedList。如果要对其进行排序,只需添加 for 循环即可比较值 @Qwaiks @LukePeterson,我还没有粘贴大量代码。我刚刚粘贴了他的修改代码。他没有添加元素。所以我只是在那里进行了更改。以上是关于在链表末尾添加一个节点的主要内容,如果未能解决你的问题,请参考以下文章