为什么我收到此代码的细分错误错误?请让我知道为什么发生分段错误。?

时间:2019-12-25 09:58:46

标签: c data-structures linked-list queue priority-queue

我只是试图通过单个链表实现优先级队列。

这只是一个根据优先级将元素插入列表的代码。

请告诉我们这是怎么回事。

能否请您告诉我为什么会出现细分错误...

typedef struct node
{
int data;
int pr;
struct node* next;

}Node;

Node* head=NULL;

Node* create(int d, int p)
{
Node *temp=(Node*)malloc(sizeof(Node));
temp->data=d;
temp->pr=p;
temp->next=NULL;
return temp;
}

void push(int data ,int pr)
{
Node* head=NULL;
Node* temp=create(data,pr);
Node* cnode=head;


if(head->pr>temp->pr)
{temp->next=head;
head=temp;

}
else{

while(cnode && cnode->next->pr< temp->pr)
{
cnode=cnode->next;
}

temp->next=cnode->next;
cnode->next=temp;
}

}

void display()
{
Node* cnode=head;
while(cnode->next!=NULL)
{
printf("_%d_%d_ -->",cnode->data,cnode->pr);
}


}

0 个答案:

没有答案