第7周项目实践2.1 用只有尾节点指针rear的循环单链表实现队列算法库

来源:互联网 发布:淘宝店开店流程要多久 编辑:程序博客网 时间:2024/05/21 17:43
//用只有尾节点指针rear的循环单链表作为队列存储结构,其中每个节点的类型为LinkNode,rear指针用于唯一标识链队typedef struct LinkNode{    int date;    LinkNode  *next;};void  initQueue(LinkNode *&rear){    rear=NULL;}void enQueue(LinkNode *&rear,Elemtype e){    LinkNode *p;    p=(LinkNode *)malloc(Linknode);    p->date=e;    if(rear==NULL)    {        p->next=p;        rear=p;        /*替代:        rear=p;        rear->next=rear;        */    }    else    {        p->next=rear->next;//将p节点的next指向头数据节点        rear->next=p;// 尾节点也指向p,构成循环链表        rear=p;//rear下移    }}bool deQueue(LinkNode *&rear,Elemtype &e){    LinkNode *p;    if(rear==NULL)        return false;    if(rear->next==rear)    {        e=rear->date;        free(rear);//只是把rear指向的值释放        rear=NULL;//        //return true;    }    else     {        p=rear->next;        e=p->date;        rear->next=p->next;        free(p);        return true;    }}bool Queueempty(LinkNode *&rear){    return (rear==NULL);   // return (rear->next==NULL;)}

阅读全文
0 0
原创粉丝点击