第八章十六题修改后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个字符子串 字符子串生成规则:分隔符是空格,字符子串的排列顺序...
  • Eric_CS
  • Eric_CS
  • 2012年05月04日 18:15
  • 2522

關於JAVA中String类以形参传递到函数里面,修改后外面引用不能获取到更改后的值

一、 最开始的示例 写代码最重要的就是实践,不经过反复试验而得出的说辞只能说是凭空遐想罢了。所以,在本文中首先以一个简单示例来抛出核心话题:public class StringAsParamOfM...
  • JQ_AK47
  • JQ_AK47
  • 2016年10月03日 15:27
  • 5496

js实现:点击一个按钮,弹出一个div,并向其中传值,修改后,再传出

class="panel-body"> id="tbList" class="table footable" data-sort="false" > clas...

ListView里如果有EditText,Edittext的值修改后,会触发其他的item里EditText的addTextChangedListener,导致数据重复

前提: ListView里如果有EditText,Edittext的值修改后,会触发其他的item里EditText的addTextChangedListener,导致数据重复 希望目标: 每个E...

解决OneThink中无法异步提交kindeditor文本框中修改后的内容

在使用JQuery来获取KindEditor编辑器的字段,并异步提交的时,解决修改后的数据就是无法被Jquery获取到的问题。...
  • hsd2012
  • hsd2012
  • 2016年08月21日 20:35
  • 749

读文件流识别图片类型(针对修改后缀名)

package com.clou.douliu.server.resources; import java.io.FileInputStream; import java.io.IOExceptio...

tomcat的端口修改后在eclipse中自动恢复

eclipse中tomcat修改默认端口 因为项目中使用的数据库和tomcat的端口冲突,需要修改tomcat的默认端口设置。方法挺简单的,修改tomcat安装目录下conf目录中的serve...

如何把别人项目代码修改后 提交到github

首先你需要了解基本的 git相关知识 如果你从 github 上clone了别人的代码,本地做了一些修改后,直接提交可能会遇到一些问题,首先需要你输入用户名,接着输入密码,最后返...

修改后的MYSQL数据访问层-table类

/*** 数据访问层,仅处理MYSQL* 包括* by:李勇* at:2009-01-19*//*** 指定库中的指定表的访问类*     * 示例:     *      $result=$tabl...

Mybatis的xml修改后自动刷新(不改源码)

思路来自于网络大神的启发,后来发现需要改源码对系统继承不太方便。尝试了一下发现mybatis已经给我们留下了足够多的可扩展点。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第八章十六题修改后POWERBY KTL
举报原因:
原因补充:

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