10.2-3 用单链表实现队列
2015-08-15 15:52
531 查看
//用单链表实现队列,设head和tail指针 #include<stdio.h> #include<stdlib.h> typedef struct NODE{ char key;struct NODE* next; }NODE; NODE *head=NULL,*tail=NULL; void enqueue(NODE* p) {//入队到tail后面 if(!tail) head=tail=p;//链表为空 else{tail->next=p;p->next=NULL;tail=p;} } void dequeue(void) {//head出队 if(!head) puts("empty queue!"); else{ NODE*p=head;head=head->next;free(p); if(!head) tail=NULL; } } NODE* createnode(char key) { NODE*p=(NODE*)malloc(sizeof(NODE)); if(!p){ puts("memory exhausted.");exit(1); } p->key=key; return p; } void traverse() { NODE*p; for(p=head;p!=tail->next;p=p->next) putchar(p->key); putchar('\n'); } int main(void) { dequeue(); enqueue(createnode('a')); enqueue(createnode('b')); enqueue(createnode('c')); traverse(); dequeue(); traverse(); enqueue(createnode('d')); enqueue(createnode('e')); traverse(); dequeue();dequeue(); dequeue(); dequeue();dequeue(); enqueue(createnode('f')); traverse();dequeue(); dequeue(); return 0; }
相关文章推荐
- java算法导论之FloydWarshall算法实现代码
- Red-Black Tree 的Java实现
- 逆序对
- 算法导论之堆
- LCS 最长公共子序列
- 使用Java完成《算法导论》习题2.2-2
- 使用Java完成《算法导论》习题2.3-2
- 使用Java完成《算法导论》习题2.3-4
- 使用Java完成《算法导论》习题2.3-5
- 使用Java完成《算法导论》习题2.3-6
- 使用Java完成《算法导论》习题2.3-7
- 快速排序个人理解
- 笔记一(算法基础)
- Chapter2 Getting Started
- Chapter3 Growth of Functions
- 插入排序和归并排序
- 第2章 算法入门
- 编程资源共享导航(更新)
- 算法导论 第15章 动态规划之钢条切割
- Asymptotic Notation and Recurrences