第八章十六题修改后POWERBY KTL

原创 2006年05月26日 16:31:00

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
#define M 10
typedef char datatype;

typedef struct
{
 datatype data[M];
 int rear,quelen;
}sequeue;
void SETNULLQS(sequeue *sq)
{
 sq->rear=M-1;
 sq->quelen=0;
}

bool EMPTYQS(sequeue *sq)
{
 if(sq->quelen==0)
  return true;
 else return false;
}//判断队空函数;

int ENQUEUEQS(sequeue*sq,datatype x)
{
 if(sq->quelen==M){
  printf("队满上溢。/n");
  return 0;
 }
 else{
  sq->rear=(sq->rear+1)%M;
  sq->data[sq->rear]=x;
  sq->quelen++;
  return 1;
 }
}//入队

datatype DEQUEUEQS(sequeue *sq)
{
 datatype temp;
 int front;
 if(EMPTYQS(sq))
 {
  printf("队空下溢。/n");
  return 0;
 }
 else{
  front=sq->rear-sq->quelen+1;
  temp=sq->data[front];
  sq->quelen--;
  return(temp);
 }
}//出队,利用了front=rear-quelen的性质;

void MyPrintf(sequeue *sq)
{
 int front;
 front=sq->rear-sq->quelen+1;
 if(front==sq->rear+1)
  printf("队空/n");
 while(front!=sq->rear+1){
  printf("%c",sq->data[front]);
  front++;
 }
 printf("/n");
 return;
}//自己编写的打印函数;

int main()
{
 datatype ch;
 sequeue *sq;
 sq=(sequeue*)malloc(sizeof(sequeue));
 SETNULLQS(sq);//置空队;
 if(EMPTYQS(sq))
  printf("队空/n");
 else
  printf("队非空/n");
 printf("请输入字符(空格结束):");
 while(1){
  ch=getche();
  if(ch==' ')
  {
 //  if(!(ENQUEUEQS(sq,'/0')))//如果是空格的话,就把'/0'入栈;
 //   break;
   break;
  }
  if(!(ENQUEUEQS(sq,ch)))
   break;
 }
 MyPrintf(sq); 
 while(1)
 {
  int i=0;
  ch=DEQUEUEQS(sq);
  if(i==sq->quelen)
   break;
  printf("%c/n",ch);
  MyPrintf(sq);//调用自己编写的MyPrintf,原因是普通printf无法打印出队内的字符;
  i++;
 }
 return 0;
}

 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

华为软件训练营培训前自测题(黑色为网上看到版本,蓝色为自己写的,红色为修改后的版本)

题目概述 输入一个长度为N(字符串长度不定)的字符串,字符均为英文字符 请完成如下功能: 1)根据输入的字符串,产生n个字符子串 字符子串生成规则:分隔符是空格,字符子串的排列顺序...

java读取图像的rpg以及灰度值,可以对rgb进行修改后输出新图像

java读取图像的rpg以及灰度值,可以对rgb进行修改后输出新图像/** *java读取图像的rpg以及灰度值,可以对rgb进行修改后输出新图像 */ File file = new...

Adam学习24之MarkDuplicatesSuite修改后有问题

sparkTest("test score") { val poorClippedReads = for (i <- 0 until 5) yield { createMapped...

手工编写servlet_MS-DOS编译servlet_Servlet修改后自动载入

(1)手工编写servlet (2)MS-DOS编译servlet (3)Servlet修改后自动载入

MySQL中ib_logfile和ibdata1参数大小被修改后

1. 环境说明 RHEL 6.4 x86_64 + MySQL 5.5.37和MySQL 5.6.19 2. 案例:redo log文件(ib_logfile)大小参数被修改:innodb_log_...

eclipse中项目名称修改后部署到tomcat中应用名称仍然是旧的问题解决

使用eclipse进行项目开发,有的时候需要修改项目的名称,可是在eclipse中部署到tomcat中访问的时候仍然只能使用旧的项目名称进行访问。 今天遇到了这个问题,下面和大家一起分享一下解决办法。...

PHPCMS 修改后台路径简便方法

之前在网上找了很多关于修改phpcms后台路径的修改方法,但是都太繁琐(个人感觉),终于找到了一个相对简单的修改方法,在这里和大家分享一下,希望互相学习。 第一步: 在网站根目录创建一个文件夹,以...

jeecms修改后台路径

修改jeecms-V6版本后台登陆路径

c语言写的批量处理文件小demo,修改后使得文件的md5值变动

这里是源码,自己造轮子,搞了个比较戳的链表,还使用了栈的基本原理。在每个文件增加一段byte,则可使得计算该文件md5值时不同。 gcc file.c -o test -lpthread #incl...

将JAR包反编译,修改后重新打包

在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)