// Reverse a linked list using Stack
#include <iostream>
#include <stack>
using namespace std;
class Node {
public :
int data;
Node* next;
Node( int x) {
data = x;
next = NULL ;
}
} ;
void reverseLL( Node** head)
{
stack< Node* > s;
Node* temp = * head;
while ( temp- > next ! = NULL ) {
// Push all the nodes in to stack
s.push ( temp) ;
temp = temp- > next;
}
* head = temp;
while ( ! s.empty ( ) ) {
temp- > next = s.top ( ) ;
s.pop ( ) ;
temp = temp- > next;
}
temp- > next = NULL ;
}
void printlist( Node* temp)
{
while ( temp ! = NULL ) {
cout << temp- > data << " " ;
temp = temp- > next;
}
}
void insert_back( Node** head, int value)
{
Node* temp = new Node( value) ;
temp- > next = NULL ;
if ( * head == NULL ) {
* head = temp;
return ;
}
else {
Node* last_node = * head;
while ( last_node- > next ! = NULL )
last_node = last_node- > next;
last_node- > next = temp;
return ;
}
}
int main( )
{
Node* head = NULL ;
insert_back( & head, 347 ) ;
insert_back( & head, 247 ) ;
insert_back( & head, 147 ) ;
insert_back( & head, 47 ) ;
insert_back( & head, 4 ) ;
cout << "Given linked list\n " ;
printlist( head) ;
reverseLL( & head) ;
cout << "\n Reversed linked list\n " ;
printlist( head) ;
return 0 ;
}
// mam iam just tried these programs as per the w3schools if i revised the previoous topics i can make it in efective way please provide the recording of week 2-2 session mam
Ly8gUmV2ZXJzZSBhIGxpbmtlZCBsaXN0IHVzaW5nIFN0YWNrCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0YWNrPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBOb2RlIHsKcHVibGljOgogICAgaW50IGRhdGE7CiAgICBOb2RlKiBuZXh0OwogICAgICBOb2RlKGludCB4KSB7CiAgICAgICAgZGF0YSA9IHg7CiAgICAgICAgIG5leHQgPSBOVUxMOwogICAgfQp9Owp2b2lkIHJldmVyc2VMTChOb2RlKiogaGVhZCkKewogICAgc3RhY2s8Tm9kZSo+IHM7CiAgICBOb2RlKiB0ZW1wID0gKmhlYWQ7CiAgICB3aGlsZSAodGVtcC0+bmV4dCAhPSBOVUxMKSB7CiAgICAgICAgLy8gUHVzaCBhbGwgdGhlIG5vZGVzIGluIHRvIHN0YWNrCiAgICAgICAgcy5wdXNoKHRlbXApOwogICAgICAgIHRlbXAgPSB0ZW1wLT5uZXh0OwogICAgfQogICAgKmhlYWQgPSB0ZW1wOwogICAgd2hpbGUgKCFzLmVtcHR5KCkpIHsKICAgICAgICB0ZW1wLT5uZXh0ID0gcy50b3AoKTsKICAgICAgICBzLnBvcCgpOwogICAgICAgIHRlbXAgPSB0ZW1wLT5uZXh0OwogICAgfQogICAgdGVtcC0+bmV4dCA9IE5VTEw7Cn0Kdm9pZCBwcmludGxpc3QoTm9kZSogdGVtcCkKewogICAgd2hpbGUgKHRlbXAgIT0gTlVMTCkgewogICAgICAgIGNvdXQgPDwgdGVtcC0+ZGF0YSA8PCAiICI7CiAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CiAgICB9Cn0Kdm9pZCBpbnNlcnRfYmFjayhOb2RlKiogaGVhZCwgaW50IHZhbHVlKQp7CiAgICBOb2RlKiB0ZW1wID0gbmV3IE5vZGUodmFsdWUpOwogICAgdGVtcC0+bmV4dCA9IE5VTEw7CiAgICBpZiAoKmhlYWQgPT0gTlVMTCkgewogICAgICAgICpoZWFkID0gdGVtcDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBOb2RlKiBsYXN0X25vZGUgPSAqaGVhZDsKICAgICAgICB3aGlsZSAobGFzdF9ub2RlLT5uZXh0ICE9IE5VTEwpCiAgICAgICAgICAgIGxhc3Rfbm9kZSA9IGxhc3Rfbm9kZS0+bmV4dDsKICAgICAgICBsYXN0X25vZGUtPm5leHQgPSB0ZW1wOwogICAgICAgIHJldHVybjsKICAgIH0KfQppbnQgbWFpbigpCnsKICAgIE5vZGUqIGhlYWQgPSBOVUxMOwogICAgaW5zZXJ0X2JhY2soJmhlYWQsIDM0Nyk7CiAgICBpbnNlcnRfYmFjaygmaGVhZCwgMjQ3KTsKICAgIGluc2VydF9iYWNrKCZoZWFkLCAxNDcpOwogICAgaW5zZXJ0X2JhY2soJmhlYWQsIDQ3KTsKICAgIGluc2VydF9iYWNrKCZoZWFkLCA0KTsKICAgIGNvdXQgPDwgIkdpdmVuIGxpbmtlZCBsaXN0XG4iOwogICAgcHJpbnRsaXN0KGhlYWQpOwogICAgcmV2ZXJzZUxMKCZoZWFkKTsKICAgIGNvdXQgPDwgIlxuUmV2ZXJzZWQgbGlua2VkIGxpc3RcbiI7CiAgICBwcmludGxpc3QoaGVhZCk7CiAgICByZXR1cm4gMDsKfQovLyBtYW0gaWFtIGp1c3QgdHJpZWQgdGhlc2UgcHJvZ3JhbXMgYXMgcGVyIHRoZSB3M3NjaG9vbHMgaWYgaSByZXZpc2VkIHRoZSBwcmV2aW9vdXMgdG9waWNzIGkgY2FuIG1ha2UgaXQgaW4gZWZlY3RpdmUgd2F5IHBsZWFzZSBwcm92aWRlIHRoZSByZWNvcmRpbmcgb2Ygd2VlayAyLTIgc2Vzc2lvbiBtYW0g