Tại sao nó không xuất ra màn hình của hàm Cau3 và hàm Cau3DQ được ạ? và tìm tổng của hai node liên tiếp là lớn nhất (vòng lặp và đệ quy) ạ?
#include<iostream>
using namespace std;
struct Nut
{
int Dulieu;
Nut *tiep;
};
//tao nut co duliet la x, truong tiep la con tro p, tra ve dia chi cua nut do
Nut *tao(int x, Nut *p)
{
Nut *q = new Nut;
q->Dulieu = x;
q->tiep = p;
return q;
}
void taoDS(Nut *&L)
{
L = tao(3,tao(7,tao(12,tao(9,tao(8,tao(4,tao(1,tao(2,tao(5,tao(10,NULL))))))))));
}
void duyet(Nut *l)
{/*
Nut *p=l;
whilet(p!=NULL){
cout<<p->Dulieu<<" -->";
p=p->tiep;
}
cout<<"NULL\n";
*/
for(Nut *p=l; p!=NULL; p=p->tiep)
cout<<p->Dulieu<<" --> ";
cout<<"NULL\n";
}
int Cau3(Nut *l)
{
int max = l->Dulieu;
Nut *q =l;
while(q!=NULL)
{ if(max +q->tiep->Dulieu < q->tiep->Dulieu + q->tiep->tiep->Dulieu)
{
max=q->tiep->tiep->Dulieu + q->tiep->Dulieu;
}
q = q->tiep;
}
return max;
}
int Cau3DQ(Nut *l)
{
}
int Cau8(Nut *l)
{
Nut *q=l;
while(q!=NULL)
{ if(q==NULL || q->tiep==NULL)
return true;
else if(q->Dulieu < q->tiep->Dulieu)
return true;
else return false;
}
}
int Cau8DQ(Nut *l)
{
if(l==NULL || l->tiep==NULL)
return 1;
else if(l->Dulieu > l->tiep->Dulieu)
return 0;
else
return Cau8DQ(l->tiep);
}
int main()
{
Nut*first;
taoDS(first);
duyet(first);
cout<<"Tinh Khong giam cua danh sach:"<<Cau8(first);
cout<<"Tinh Khong giam cua danh sach:"<<Cau8DQ(first);
cout<<"Tinh tong hai node lien tiep la lon nhat: "<<Cau3(first);
cout<<"Tinh tong hai node lien tiep la lon nhat: "<<Cau3DQ(first);
return 0;
}


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?