C语言简单的队列链表

/*
 * queue.h
 *
 *  Created on: Nov 6, 2010
 *      Author: jenson
 */

#ifndef QUEUE_H_
#define QUEUE_H_

typedef int item_type;
typedef struct _queue_node_ *link;

struct _queue_node_{
    item_type item;
    link next;
};
static link head,tail;

link queue_new_node(link next,item_type e){
    link x = malloc(sizeof(*x));
    x->item = e;
    x->next = next;
    return x;
}

void queue_init(int max){
    head = NULL;
}

void queue_empty(){
    return head == NULL;
}

void queue_enqueue(item_type e){
    if(head == NULL){
        head = (tail = queue_new_node(head,e));
        return;
    }
    tail->next = queue_new_node(tail->next,e);
    tail = tail->next;
}

item_type queue_get(){
    item_type e = head->item;
    link t = head->next;
    free(head);
    head = t;
    return e;
}
#endif /* QUEUE_H_ */

你可能感兴趣的:(算法,职场,休闲)