C语言二叉树与队列实现基础代码
2014-03-22 22:58
656 查看
http://blog.csdn.net/xzongyuan/article/details/21830097
c语言队列基本操作代码
基于是上一篇做了修改,主要修改结构提,因为准备加入树的操作,代码会越来越繁杂,为了还原整个改写过程,分步显示,
c语言队列基本操作代码
基于是上一篇做了修改,主要修改结构提,因为准备加入树的操作,代码会越来越繁杂,为了还原整个改写过程,分步显示,
#include<stdio.h> #include<stdlib.h> typedef struct _node { int value; struct _node *left; struct _node *right; }TNode,*Tree; //add a *next in q_node is my purpose //other wise , we need to add in the Tree node struct //So, for the sake of doesn't modify the struct of tree //I design a q_node struct to include it //we can use define command to make it as a template. typedef struct q_node { TNode *t_node; struct q_node *next; }QNode; typedef struct _Queue { QNode *head; QNode *tail; }Queue; Queue* init_queue() { Queue *queue=(Queue*)malloc(sizeof(Queue)); queue->head = queue->tail = NULL; return queue; } int enQueue(Queue *pQueue,QNode *pQNode) { if(pQueue->head == NULL) {//when it's empty pQueue->head = pQNode; pQueue->tail = pQNode; } else { pQueue->tail->next = pQNode; pQueue->tail = pQNode; } } QNode* deQueue(Queue *pQueue) { if(pQueue->head == NULL) { return NULL; } QNode *deNode= pQueue->head; pQueue->head = pQueue->head->next; return deNode; } TNode* init_node(int value) { TNode *new_node = (TNode*)malloc(sizeof(TNode)); new_node->value=value; new_node->left = new_node->right = NULL; return new_node; } //0:empty int ifEmpty(Queue *pQueue) { if(pQueue->head == NULL) { printf("empty tree\n"); return 0; } printf("queue is not empty\n"); return 1; } int main() { Queue *queue=init_queue(); int i; ifEmpty(queue); printf("insert node to queue\n"); for(i=1; i<7;i++) { TNode *t_node = init_node(i); QNode *qNode = (QNode*)malloc(sizeof(QNode)); qNode->t_node = t_node; enQueue(queue,qNode); // free(node); } // Node *node = init_node(1); // printf("node->value = %d\n",node->value); // enQueue(queue,node); ifEmpty(queue); for(i=0;i<7;i++) { QNode *deNode = deQueue(queue); if(deNode==NULL) { printf("NULL\n"); } else { printf("deNode->value = %d\n",deNode->t_node->value); } } free(queue); return 0; }
相关文章推荐
- 数据结构 - 队列简介 及 1个简单的c语言链式队列代码实现
- 数据机构 C语言实现队列(含代码详解 易懂)
- C语言实现链队列代码
- C语言实现链队列代码
- 优先队列(priority_queue)的C语言实现代码
- 链式队列的基础操作实现(C语言)
- 严蔚敏 数据结构 二叉树 代码C语言实现 用C++编译器运行
- 五、数据结构基础之循环队列C语言实现
- 二叉树学习:从零基础到代码实现
- 六、数据结构基础之链队列C语言实现
- C语言二叉树知识点讲解与实现代码
- 剑指offer 01-06解答思路以及代码(顺序数组找特定数字,替换空格字符,链表反转输出,重建二叉树,两个栈实现队列效果,旋转数组最小元素)
- c语言实现二叉树层次遍历(借助队列实现)
- 数据结构 --静态队列的一个简单的C语言代码实现
- 简单的C语言二叉树的实现代码
- 数据结构中栈与队列的c语言代码实现
- 数据结构基础之循环队列C语言实现
- 数据结构C语言实现之链式队列的6种算法代码
- 数据结构基础(5)--C语言实现循环队列--静态
- 0-1问题代码(c语言实现)