#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node * next;
}
* start = NULL;
struct node * current;
void display( ) ;
void createList( ) ;
int main( void )
{
int numberOfElements = 0 ;
printf ( "How many elements do you want to enter?\n " ) ; scanf ( "%d" ,& numberOfElements
) ;
for ( int i = 0 ; i < numberOfElements; ++ i) {
printf ( "Please enter data for element number %d\n " , i
+ 1 ) ; createList( ) ;
}
display( ) ;
return 0 ;
}
void display( ) {
struct node * tempNode;
printf ( "Now displaying the list\n " ) ; tempNode = start;
while ( tempNode != NULL) {
printf ( "%d---> " , tempNode
-> data
) ; tempNode = tempNode-> next;
}
}
void createList( ) {
struct node * newNode;
newNode
= ( struct node
* ) malloc ( 1 * sizeof ( struct node
) ) ;
//printf("Please enter the data for each element\n");
scanf ( "%d" , & newNode
-> data
) ;
// For testing
printf ( "You entered %d\n " , newNode
-> data
) ;
newNode-> next = NULL;
if ( start == NULL) {
start = newNode;
current = newNode;
}
else {
current-> next = newNode;
current = newNode;
printf ( "%d" , ( start
-> next
) -> data
) ; }
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KICAgIApzdHJ1Y3Qgbm9kZQp7CiAgICAgaW50IGRhdGE7CiAgICAgc3RydWN0IG5vZGUgKm5leHQ7Cn0KKnN0YXJ0ID0gTlVMTDsKc3RydWN0IG5vZGUgKmN1cnJlbnQ7Cgp2b2lkIGRpc3BsYXkoKTsKCnZvaWQgY3JlYXRlTGlzdCgpOwoKaW50IG1haW4odm9pZCkKewogICAgCiAgICAgaW50IG51bWJlck9mRWxlbWVudHMgPSAwOwogICAgIHByaW50ZigiSG93IG1hbnkgZWxlbWVudHMgZG8geW91IHdhbnQgdG8gZW50ZXI/XG4iKTsKICAgICBzY2FuZigiJWQiLCZudW1iZXJPZkVsZW1lbnRzKTsKCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXJPZkVsZW1lbnRzOyArK2kpewogICAgICAgICAgcHJpbnRmKCJQbGVhc2UgZW50ZXIgZGF0YSBmb3IgZWxlbWVudCBudW1iZXIgJWRcbiIsIGkrMSk7CiAgICAgICAgICBjcmVhdGVMaXN0KCk7CiAgICAgfQoKICAgICBkaXNwbGF5KCk7CgoKICAgICByZXR1cm4gMDsKCn0KICAgIAp2b2lkIGRpc3BsYXkoKXsKICAgICBzdHJ1Y3Qgbm9kZSAqdGVtcE5vZGU7CgogICAgIHByaW50ZigiTm93IGRpc3BsYXlpbmcgdGhlIGxpc3RcbiIpOwogICAgIHRlbXBOb2RlID0gc3RhcnQ7CiAgICAgd2hpbGUgKHRlbXBOb2RlICE9IE5VTEwpewogICAgICAgICAgcHJpbnRmKCIlZC0tLT4gIix0ZW1wTm9kZS0+ZGF0YSk7CiAgICAgICAgICB0ZW1wTm9kZSA9IHRlbXBOb2RlLT5uZXh0OwogICAgIH0KICAgICBwcmludGYoIk5VTExcbiIpOwoKfQp2b2lkIGNyZWF0ZUxpc3QoKXsKICAgICBzdHJ1Y3Qgbm9kZSAqbmV3Tm9kZTsKICAgICBuZXdOb2RlID0gKHN0cnVjdCBub2RlICopbWFsbG9jKDEgKiBzaXplb2YgKHN0cnVjdCBub2RlKSk7CgogICAgIC8vcHJpbnRmKCJQbGVhc2UgZW50ZXIgdGhlIGRhdGEgZm9yIGVhY2ggZWxlbWVudFxuIik7CiAgICAgc2NhbmYoIiVkIiwgJm5ld05vZGUgLT5kYXRhKTsKCiAgICAgLy8gRm9yIHRlc3RpbmcKICAgICBwcmludGYoIllvdSBlbnRlcmVkICVkXG4iLG5ld05vZGUtPmRhdGEpOwoKICAgICBuZXdOb2RlLT5uZXh0ID0gTlVMTDsKCiAgICAgaWYoc3RhcnQgPT0gTlVMTCl7CiAgICAgICAgICBzdGFydCA9IG5ld05vZGU7CiAgICAgICAgICBjdXJyZW50ID0gbmV3Tm9kZTsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgICBjdXJyZW50LT5uZXh0ID0gbmV3Tm9kZTsKICAgICAgICAgIGN1cnJlbnQgPSBuZXdOb2RlOwogICAgICAgICAgcHJpbnRmKCIlZCIsIChzdGFydC0+bmV4dCktPmRhdGEpOwogICAgIH0KfQo=