Skip to content

Instantly share code, notes, and snippets.

@knotman90 knotman90/list.c
Created Dec 6, 2016

What would you like to do?
#include <stdio.h>
typedef struct node{
int payload;
node* next;
} node;
void print(node* head){
printf("%d ",head->payload);
head = head->next;
int cmp( const int a, const int b ){
return a>b;
node* _insert(node* prec, node*head , const int n ){
if(!head )//insert at end
node* aus = (node*)malloc(sizeof(node));
aus->payload = n;
aus->next = 0;
prec->next = aus;
return aus;
}else if (cmp(n,head->payload)){
node* aus = (node*)malloc(sizeof(node));
aus->payload = n;
aus->next = head;
if(prec) prec->next = aus; //new head
return aus;
return _insert(head, head->next,n);
* If the list is empty simply allocate a node and update the head of the list.
* If the list is not empty then call __insert();
* If the pointer to the newly inserted element is the new head then update the head.*/
node* insert(node* head, const int n){
node* aus = (node*)malloc(sizeof(node));
return aus;
node* ni =_insert(0,head,n);
if(cmp(ni->payload , head->payload))
return head;
int main(){
node* head = 0;
for(int i=10;i>0;i--){
int a; scanf("%d",&a);
return 0;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.