#ifndef LINK_QUEUE_H
#define LINK_QUEUE_H
struct 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;
}
}