数据结构------队列(C语言实现)

声明:我是看了啊哈雷磊老师的《啊哈!算法》写的博客,以后的以及以前的几篇都是这样子的[嘻嘻]。觉得这本书写的很有意思,就打算记录一下,毕竟从图书馆借的书,以后还给学校,这嘛好的内容我就看不到了。(当学生真好)当然了,内容有些小区别,不是完全一样的。

好了,我先说情景(自编的哈)。小哼和小哈都在上小学5年级,小哼很调皮,不爱学习,小哈,是个女娃娃,学习很认真。一天小哼被爸爸凶了一顿,因为考试成绩不好,小哼注意到了班级里一位叫做小哈的同学,学习很好,每次都考第一。于是就打算要到小哈的qq号方便以后问小哈同学问题。小哈说:“我说一串数字,你把第一个删除,第二个排到这列数字的最后,第三个删除,第四个排到这列数字的最后。。。。。,依次这样。最后剩一个数也要删除,把这些删除的数字依次按照删除顺序排成一列,就是我的qq”.小哼对小哈说:“果然是学霸,膜拜女神”。。。。。。。。

小哼想了想,这不是队列吗?我之前看过编程方面的书。。。我直接写个算法就 出来了。。。。

 1 #include<stdio.h>
 2 int main(void){
 3     int q[102]={0,1,3,5,6,9,4,2,7,8},head,tail;//0是用来填充第一个位置的;
 4     //为神马从1开始,不是从零呢?其实都一样,感觉从1开始比较好理解;嘻嘻!
 5     head=1;
 6     tail=10;
 7     while(head<tail){
 8     printf("%6d\n",q[head]);
 9     head++;
10     q[tail]=q[head];
11     tail++;
12     head++;
13     }
14     return 0;
15 }

小哼的哥哥大哼看了看就写了个”高档”的程序。。。用到了结构体。

 1 #include<stdio.h>
 2 struct queue{
 3    int data[100];
 4    int head;
 5    int tail;
 6 };//结构体表示队列
 7 int main(void){
 8     struct queue q;
 9     int i;
10     q.head=1;
11     q.tail=1;
12     printf("please  input nine number: \n");
13     for(i=1;i<=9;i++){
14        scanf("%d",&q.data[q.tail]);
15        q.tail++;
16     }
17     while(q.head<q.tail){
18      printf("%6d",q.data[q.head]);
19      q.head++;
20      q.data[q.tail]=q.data[q.head];
21      q.tail++;
22      q.head++;
23     }
24     return 0;
25 }

好了,就这样。嘻嘻。

时间: 2024-08-03 07:49:19

数据结构------队列(C语言实现)的相关文章

数据结构算法C语言实现(十二)--- 3.4循环队列&amp;队列的顺序表示和实现

一.简述 空队列的处理方法:1.另设一个标志位以区别队列是空还是满:2.少用一个元素空间,约定以队列头指针在队尾指针下一位置上作为队列呈满的状态的标志. 二.头文件 1 //3_4_part1.h 2 /** 3 author:zhaoyu 4 email:[email protected] 5 date:2016-6-9 6 note:realize my textbook <<数据结构(C语言版)>> 7 */ 8 //Page 64 9 #include <cstdio

数据结构算法C语言实现(十一)--- 3.4队列的链式表示和实现

一.简介 FIFO. 二.头文件 1 //3_4_part1.h 2 /** 3 author:zhaoyu 4 email:[email protected] 5 date:2016-6-9 6 note:realize my textbook <<数据结构(C语言版)>> 7 */ 8 //Page 61 9 #include <cstdio> 10 #include "head.h" 11 #define QElemType int 12 //

数据结构(c语言描述)

数据结构(c语言描述) 目录 预备的数学知识 什么是数据结构 线性表 栈和队列 数组 串 树和二叉树 查找 排序 预备的数学知识 等差数列求和 Sn=(a1+an)*n/2 等比数列求和 Sn=a1*(1-q?)/(1-q) 什么是数据结构 基本概念 数据: 能够被计算机识别和处理的符号的集合 数据元素:是数据的基本单位,由若干的数据项构成,如一个人有手有脚 数据对象:由同类型的数据元素组成的集合,如一群人 数据类型:由一个集合和定义在此集合上的操作组成 原子类型:值不可再分的数据类型,如int

数据结构算法C语言实现(十)--- 3.3栈与递归的实现

一.简介 汉诺塔问题是递归的一个典型例子,而且书上的讲解很详细,对理解C语言函数及函数传参的工作机制很有帮助,值得一看.而且,递归在我看来和分治.DP.贪心等一样是十分优美的思想,值得学习!!! 二.CPP文件 1 //3_3.cpp 2 /** 3 author:zhaoyu 4 email:[email protected] 5 date:2016-6-8 6 note:realize my textbook <<数据结构(C语言版)>> 7 */ 8 //Page 54 9

数据结构算法C语言实现(八)--- 3.2栈的应用举例:迷宫求解与表达式求值

一.简介 迷宫求解:类似图的DFS.具体的算法思路可以参考书上的50.51页,不过书上只说了粗略的算法,实现起来还是有很多细节需要注意.大多数只是给了个抽象的名字,甚至参数类型,返回值也没说的很清楚,所以很多需要自己揣摩.这也体现了算法和程序设计语言的特点,算法更侧重本质的描述,而任何编程语言都要照顾到实现的细节以及数据类型等语法方面的需求. 表达式求值: [编码中....] 二.头文件 迷宫求解: 1 //3_2_maze.h 2 /** 3 author:zhaoyu 4 email:[em

数据结构算法C语言实现(七)--- 3.1 的线性实现及应用举例

一.简述 栈,LIFO.是操作受限的线性表,和线性表一样有两种存储表示方法.下面以顺序存储为例,实现. 二.ADT 暂无. 三.头文件 1 //3_1.h 2 /** 3 author:zhaoyu 4 email:[email protected] 5 date:2016-6-7 6 note:realize my textbook <<数据结构(C语言版)>> 7 */ 8 //Page 46 9 10 #ifndef _3_1_H_ 11 #define _3_1_H_ 12

数据结构算法C语言实现(二十)--- 6.3.1遍历二叉树

一.简述 二叉树的遍历主要是先序.中序.后序及对应的递归和非递归算法,共3x2=6种,其中后序非递归在实现上稍复杂一些.二叉树的遍历是理解和学习递归及体会栈的工作原理的绝佳工具! 此外,非递归所用的栈及相关操作是第三章实现的,但数据类型做了更改. 二.头文件 1 //3_1.h 2 /** 3 author:zhaoyu 4 email:[email protected] 5 date:2016-6-7 6 note:realize my textbook <<数据结构(C语言版)>&g

基本数据结构-队列的实现及其运用

二.队列 队列是一种先进先出的数据结构,元素只能添加到队尾,而对元素的删除,修改,检索只能在队头进行.与栈的差异是很明显的.同样队列的实现可以基于链表,也可以基于数组.和栈的基本操作差不多,但队列多了一个指针(标号)指向末尾的元素,因为需要在末尾插入元素. 1.队列的链表实现 #ifndef QUEUE_H #define QUEUE_H #include <iostream> template <class T> class queue { public: queue(); ~q

数据结构—队列

数据结构-队列 1.队列的定义 队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许插入的一端称为队尾(rear),允许删除的一端称为队头 (Front) 队列模型 2.队列的操作 队列的操作原则是先进先出的,所以队列又称作FIFO表(First in First out) 置空队:InitQueue(Q) 判队空:QueueEmpty(Q) 判队满:QueueFull(Q) 入队:En

java数据结构队列

队列类似于现实生活中的排队.队列是先进先出的原则,只允许在队列头部去除元素,队列尾部添加元素. 下面是分别用数组和链表为存储结构实现的队列 public interface Queue<T> { int size(); T remove(); void add(T element); boolean isEmpty(); void clear(); boolean hasElement(); } public class ArrayQueue<T> implements Queue