#include<iostream>
using namespace std;
class linked_list{
int data,size;
linked_list * next,* head;
public :
linked_list( ) : data( 0 ) ,next( NULL ) ,size( 0 ) ,head( NULL )
{
}
void insert( int item)
{
if ( head== NULL )
{
linked_list * new_node= new linked_list;
new_node- > data= item;
new_node- > next= NULL ;
head= new_node;
}
else
{
linked_list * temp= head;
while ( temp- > next! = NULL )
{
temp= temp- > next;
}
linked_list * new_node= new linked_list;
new_node- > data= item;
new_node- > next= NULL ;
temp- > next= new_node;
}
}
void print( )
{
linked_list * tmp= head;
while ( tmp! = NULL )
{
cout << tmp- > data<< " " ;
tmp= tmp- > next;
}
cout << endl;
}
linked_list * intersection( linked_list * one,linked_list * two)
{
if ( one== NULL || two== NULL )
return NULL ;
else if ( one- > data > two- > data)
return intersection( one,two- > next) ;
else if ( one- > data< two- > data)
return intersection( one- > next,two) ;
else if ( one- > data == two- > data)
{
linked_list * temp= new linked_list;
temp- > data= one- > data;
temp- > next= intersection( one- > next,two- > next) ;
return temp;
}
}
} ;
int main( )
{
linked_list obj1,obj2,ans;
cout << "Enter how many elements do you wanna enter for the first list:" ;
int n,item;
cin >> n;
for ( int i= 0 ; i< n; i++ )
{
cin >> item;
obj1.insert ( item) ;
}
cout << "Enter how many elements do you wanna enter for the second list:" ;
cin >> n;
for ( int i= 0 ; i< n; i++ )
{
cin >> item;
obj2.insert ( item) ;
}
cout << "\n intersection:\n " ;
ans= ans.intersection ( & obj1,& obj2) ;
ans.print ( ) ;
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIGxpbmtlZF9saXN0ewogICAgaW50IGRhdGEsc2l6ZTsKICAgIGxpbmtlZF9saXN0ICpuZXh0LCpoZWFkOwpwdWJsaWM6CiAgICBsaW5rZWRfbGlzdCgpOiBkYXRhKDApLG5leHQoTlVMTCksc2l6ZSgwKSxoZWFkKE5VTEwpCiAgICB7CiAgICB9CgogICAgdm9pZCBpbnNlcnQoaW50IGl0ZW0pCiAgICB7CiAgICAgICAgaWYoaGVhZD09TlVMTCkKCQl7CiAgICAgICAgICAgIGxpbmtlZF9saXN0ICpuZXdfbm9kZT1uZXcgbGlua2VkX2xpc3Q7CiAgICAgICAgICAgIG5ld19ub2RlLT5kYXRhPWl0ZW07CiAgICAgICAgICAgIG5ld19ub2RlLT5uZXh0PU5VTEw7CiAgICAgICAgICAgIGhlYWQ9bmV3X25vZGU7CgkJfQoJCWVsc2UKCQl7CiAgICAgICAgICAgIGxpbmtlZF9saXN0ICp0ZW1wPWhlYWQ7CiAgICAgICAgICAgIHdoaWxlKHRlbXAtPm5leHQhPU5VTEwpCgkJCXsKICAgICAgICAgICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKCQkJfQoJCQlsaW5rZWRfbGlzdCAqbmV3X25vZGU9bmV3IGxpbmtlZF9saXN0OwoJCQluZXdfbm9kZS0+ZGF0YT1pdGVtOwogICAgICAgICAgICBuZXdfbm9kZS0+bmV4dD1OVUxMOwogICAgICAgICAgICB0ZW1wLT5uZXh0PW5ld19ub2RlOwoJCX0KICAgIH0KICAgIHZvaWQgcHJpbnQoKQogICAgewogICAgICAgIGxpbmtlZF9saXN0ICp0bXA9aGVhZDsKICAgICAgICB3aGlsZSh0bXAhPU5VTEwpCgkJewogICAgICAgICAgICBjb3V0PDx0bXAtPmRhdGE8PCIgIjsKICAgICAgICAgICAgdG1wPXRtcC0+bmV4dDsKCQl9CgkJY291dDw8ZW5kbDsKICAgIH0KCglsaW5rZWRfbGlzdCAqIGludGVyc2VjdGlvbihsaW5rZWRfbGlzdCAqb25lLGxpbmtlZF9saXN0ICp0d28pCiAgICB7CgkJaWYob25lPT1OVUxMIHx8IHR3bz09TlVMTCkKCQkJcmV0dXJuIE5VTEw7CgoJCWVsc2UgaWYob25lLT5kYXRhID50d28tPmRhdGEpCgkJCXJldHVybiBpbnRlcnNlY3Rpb24ob25lLHR3by0+bmV4dCk7CgoJCWVsc2UgaWYob25lLT5kYXRhPCB0d28tPmRhdGEpCgkJCXJldHVybiBpbnRlcnNlY3Rpb24ob25lLT5uZXh0LHR3byk7CgoJCWVsc2UgaWYob25lLT5kYXRhID09IHR3by0+ZGF0YSkKCQl7CiAgICAgICAgICAgbGlua2VkX2xpc3QgKnRlbXA9bmV3IGxpbmtlZF9saXN0OwogICAgICAgICAgIHRlbXAtPmRhdGE9b25lLT5kYXRhOwogICAgICAgICAgICB0ZW1wLT5uZXh0PWludGVyc2VjdGlvbihvbmUtPm5leHQsdHdvLT5uZXh0KTsKCQkgICAgcmV0dXJuIHRlbXA7CgkJfQogICAgfQoKCn07CgppbnQgbWFpbigpCnsKCWxpbmtlZF9saXN0IG9iajEsb2JqMixhbnM7CiAgICBjb3V0PDwiRW50ZXIgaG93IG1hbnkgZWxlbWVudHMgZG8geW91IHdhbm5hIGVudGVyIGZvciB0aGUgZmlyc3QgbGlzdDoiOwoJaW50IG4saXRlbTsKICAgIGNpbj4+bjsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCgl7CgkJY2luPj5pdGVtOwoJCW9iajEuaW5zZXJ0KGl0ZW0pOwoJfQoKCWNvdXQ8PCJFbnRlciBob3cgbWFueSBlbGVtZW50cyBkbyB5b3Ugd2FubmEgZW50ZXIgZm9yIHRoZSBzZWNvbmQgbGlzdDoiOwogICAgY2luPj5uOwogICAgZm9yKGludCBpPTA7aTxuO2krKykKCXsKCQljaW4+Pml0ZW07CgkJb2JqMi5pbnNlcnQoaXRlbSk7Cgl9CiAgICBjb3V0PDwiXG5pbnRlcnNlY3Rpb246XG4iOwogICAgYW5zPWFucy5pbnRlcnNlY3Rpb24oJm9iajEsJm9iajIpOwoJYW5zLnByaW50KCk7CgoKCXJldHVybiAwOwp9Cg==
compilation info
prog.cpp: In function 'int main()':
prog.cpp:87:8: error: no match for 'operator=' (operand types are 'linked_list' and 'linked_list*')
ans=ans.intersection(&obj1,&obj2);
^
prog.cpp:87:8: note: candidates are:
prog.cpp:3:7: note: linked_list& linked_list::operator=(const linked_list&)
class linked_list{
^
prog.cpp:3:7: note: no known conversion for argument 1 from 'linked_list*' to 'const linked_list&'
prog.cpp:3:7: note: linked_list& linked_list::operator=(linked_list&&)
prog.cpp:3:7: note: no known conversion for argument 1 from 'linked_list*' to 'linked_list&&'
stdout