Я строю простой linked list
с функциями display()
и add_at_end()
. Ниже мой кодСвязанный список Error-Infinite Loop
#include<stdio.h>
#include<iostream>
using namespace std;
typedef struct node{
int num;
struct node *next;
}n;
n* head;
class ll{
public:
ll();
~ll();
void display();
void add_at_end(int n);
//void add_at_beginning(int n);
//int count();
//void delete_num(int n);
};
ll::ll(){
head=NULL;
}
ll::~ll(){
if(head!=NULL)
{
n *temp;
while(head!=NULL)
{
temp=head->next;
delete head;
head=temp;
}
}
}
void ll::display(){
if(head==NULL)
cout<<"There is nothing to display in the list";
else
{
n *temp;
temp=head;
while(temp!=NULL)
{cout<<temp->num;}
}}
void ll::add_at_end(int number)
{
n *temp=new n;
temp->num=number;
temp->next=NULL;
if(head==NULL)
head=temp;
else
{
n *tmp2;
tmp2=head;
while(tmp2!=NULL)
{ tmp2=tmp2->next;}
tmp2=temp;
}
}
int main(){
ll* fll=new ll();
fll->add_at_end(54);
fll->display();
return 0;
}
Все остальное это хорошо, но когда я запускаю код, я получаю бесконечный цикл, в котором 54 продолжает получать распечатанный снова и снова. Где я ошибаюсь? В функции display()
или add_at_end()
?
Вы могли бы хотеть, чтобы присмотреться к этой петле в вашем 'add_at_end' функции. –
Помимо этого, я рекомендую вам пройти через код, строка за строкой, в отладчике. Это может помочь вам сузить проблему до определенной функции и, возможно, понять ее сами. –