基于链表实现队列

来源:互联网 发布:get软件 编辑:程序博客网 时间:2024/05/19 09:09
#ifndef LINK_QUEUE_H#define LINK_QUEUE_Hstruct linkqueue{struct linkqueue * next;int content;};struct linkqueue * pop();void push(struct linkqueue * p);void display();void init(int * array , int n);#endif

#include <stdio.h>#include <stdlib.h>#include "linkqueue.h"/* *link queue *author @ suilingxi *2014-1-29*/struct linkqueue * head;struct linkqueue * tail;int main(){return 0;}void init(int * array , int n){if(n==0){head=NULL;tail=NULL;}else if(n>0){struct linkqueue * node;node=(struct linkqueue *)malloc(sizeof(struct linkqueue));node->content=*array;node->next=NULL;head=node;tail=node;for(int i=1;i<n;i++){struct linkqueue * node;node=(struct linkqueue *)malloc(sizeof(struct linkqueue));node->content=*(array+i);node->next=NULL;tail->next=node;tail=node;}}}void display(){if((head==NULL)&&(tail==NULL)){printf("null\n");}else{struct linkqueue * tmp;tmp=head;while(tmp != NULL){printf("%d-->",tmp->content);tmp=tmp->next;}}printf("\n");}struct linkqueue * pop(){struct linkqueue * tmp;if(head==NULL){return NULL;}else if(head == tail){tmp=head;head=NULL;tail=NULL;}else{tmp=head;head=head->next;}return tmp;}void push(struct linkqueue * p){if(head == NULL){head=p;tail=p;}else{tail->next=p;tail=p;}}


0 0
原创粉丝点击