链队

来源:互联网 发布:网络语66是什么意思 编辑:程序博客网 时间:2024/06/05 08:29
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef int type;typedef struct Node{    type info;    struct Node*next;}node;//队列声明,保存头指针,尾指针typedef struct{    node *front;    node *rear;}queue;//初始化一个空队列并返回其指针queue* init(){    queue *head=(queue*)malloc(sizeof(queue));    head->front=head->rear=NULL;}//打印一个队列void display(queue*head){    node *p=head->front;    while(p){        printf("%5d",p->info);        p=p->next;    }    printf("\n");}//入队void insert(queue*head){    node*pre;    pre=(node*)malloc(sizeof(node));    pre->next=NULL;    scanf("%d",&pre->info);    if(!head->front)//如果是空队列,则front和rear指针指向该节点        head->front=head->rear=pre;    else{//否则,在尾部插入        head->rear->next=pre;        head->rear=pre;    }}//销毁一个队列void destory(queue*head){    node*pre=head->front,*p;    while(pre)    {        p=pre->next;        free(pre);        pre=p;    }    free(head);}//出队void dele(queue *head){    node*p;    if(!head->front)        printf("NULL\n");    else{//非空队列       p=head->front;       head->front=p->next;       free(p);       if(!head->front)//如果是删除了最后一个节点,队列置空        head->rear=NULL;    }}//建立一个长度为n的队列void create(queue *head,int n){    int i;    for(i=1;i<=n;i++)        insert(head);}

0 0
原创粉丝点击