head
в insert
локально для функции insert
, любая модификация к ней не повлияет на head
в основном и будет уничтожена после выхода из функции insert
.
Решение:
Вам нужно передать указатель head
в main
на insert
.
Следовательно, ваша вставка станет такой, как показано ниже.
void insert(struct node **head,int data,int priority){
struct node* newnode=getnewnode(data,priority);
if(*head==NULL){
*head=newnode;
printf("head in insert is %d",*head);
return;
}
if((*head)->priority > newnode->priority){
newnode->next=*head;
*head=newnode;
return;
}
if((*head)->priority <= newnode->priority ){
struct node* temp=*head;
while(temp->priority <= newnode->priority && temp->next != NULL){
temp=temp->next;
}
newnode->next=temp->next;
temp->next=newnode;
return;
}
}
и вы звоните insert
с main
, как показано ниже.
insert(&head,3,5);