标签:height pre nod push typedef else turn 语言 模板
把以前写的东西贴在这里方便回故
Queue abc; //声明队列结构体 crteate_Queue(abc); //创建队列 abc.push(int num); //压入 int abc = abc.pop();//弹出
typedef struct _Node{ struct _Queue * prev; struct _Queue * next; }Node; typedef Node* Node_Pion; //它的指针类型
Node_Pion node_push(Node_Pion tail, Node_Pion node) //给我一个尾指针,一个结点. { if (!node) return NULL; if(tail) tail-next = node; node->prev = tail; tail = node; return tail; } Node_Pion node_pop (Node_Pion head) //给我一个头指针. { if(head-next) head->next->prev = NULL; head = head->next; return head; }
typedef struct _Queue{ Node_Pion HEAD; //它的头 Node_Pion TAIL; //它的尾 }Queue; typedef Queue* Queue_pion; //它的行为 //构造 Queue_pion ctreate_queue(Queue_pion queue){ if(!queue) queue = (Queue_pion)malloc(sizeof(_Queue)); queue->HEAD = NULL; queue->TAIL = NULL; return queue; } //析构 void delete_queue(Queue_pion queue){ free(queue); } //压入 void push (Queue_pion queue, void* node){ if((!queue->HEAD) && (!queue->TAIL)) //如果头尾有一个等于NULL.队列无效 queue->TAIL = queue->HEAD = node_push(queue->TAIL, (Node_Pion)node); //重新建立队列 else queue->TAIL = node_push(queue->TAIL, (Node_Pion)node); //给我一个尾指针,一个结点. } //弹出 void* pop (Queue_pion queue){ Node_Pion p = queue->HEAD; queue->HEAD = node_pop(queue->HEAD); return (void*)p; }
struct abc{ int num; int val; };
Queue *abc = ctreate_queue(Queue_pion queue); typedef struct _abc{ Node node; //我们在这个自定义结构里的第一个元素,加上我们的结点结构的一个元素. int num; int val; }*abc; 还是起个好用的名字吧.
标签:height pre nod push typedef else turn 语言 模板
原文地址:http://www.cnblogs.com/wuhaozhineng/p/6931855.html