求大神帮写写算法,在线等。C语言代码也可以

2025-04-24 06:15:18
推荐回答(1个)
回答1:

#include 
#include 
struct queueNode
{
int val;
struct queueNode *nxt;
};
void push_back(struct queueNode *rear, int x)
{
struct queueNode *ptr = rear;
while(ptr->nxt != rear) ptr = ptr->nxt;
ptr->nxt = (struct queueNode *)malloc(sizeof(struct queueNode));
ptr->val = x;
ptr = ptr->nxt;
ptr->nxt->nxt = rear;
}
void pop(struct queueNode *rear)
{
struct queueNode *ptr = rear;
if(ptr->nxt == rear)
{
free(rear);
rear = NULL;
printf("The queue is empty.\n");
return;
}
while(ptr->nxt->nxt != rear) ptr = ptr->nxt;
free(ptr->nxt);
ptr->nxt = rear;
}
void deleteQueue(struct queueNode *rear)
{
struct queueNode *ptr = rear, *tmp;
while(ptr->nxt != rear)
{
tmp = ptr->nxt;
free(ptr);
ptr = tmp;
}
}
int main()
{
struct queueNode *rear = (struct queueNode *)malloc(sizeof(struct queueNode));
rear->nxt = rear;
/****************************/
/*  followed by your code.  */
/****************************/
deleteQueue(rear);
return 0;
}