队列 句句分析 精辟解释 有图

</pre><pre code_snippet_id="505570" snippet_file_name="blog_20141102_3_3508855" name="code" class="cpp">

顺序栈,即栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈项元素在顺序栈中的位置。

#include "stdio.h"//包含头文件,就是编译时候把stdio.h中的内容替换到这个位置。
struct stack//定义结构体stack
{
 int length;//定义整型变量length
 struct data *top;//定义data类型的指针变量top
};
struct data//定义data结构体
{
 char c;//定义字符变量c
 struct data *next;//定义data类型指针变量next
};

struct stack *InitStack()//定义函数initstack,函数返回值是stack类型的指针
{
 struct stack *p;//定义stack指针p
 p=(struct stack *)malloc(sizeof(struct stack));//给p分配内存空间,空间大小正好够保存一个stack数据
 p->length=0;//给p指向的内存空间赋值
 p->top=NULL;//给p指向的内存空间赋值
 return p;//返回p的值
}

Push(struct stack *p,char a)//定义函数,函数带两个参数指针p和字符a
{
 struct data *t;//定义data类型指针t
 t=(struct data *)malloc(sizeof(struct data));//给t分配内存空间
 t->next=p->top;//给t指向的data型内存空间赋值
 p->top=t;//把t的地址保存到p指向的内存空间中的一个变量保存起来
 t->c=a;//给t指向的data型内存空间赋值
 p->length++;//p指针指向的结构体变量中的length变量+1
 return 0;//返回0
}

Pop(struct stack *p,char *a)//定义函数,带两个参数:指针p和字符指针a
{
 struct data *t;//定义指针t
 t=p->top;//把p中的top变量赋给t
 p->top=t->next;//改变p中的top变量值为t中next变量的值
 *a=t->c;//改变函数第二个参数的值为t中c变量的值
 free(t);//释放t指向的内存空间
 p->length--;//p中的length变量-1
 return 0;//返回0
}
char change(int n)//定义函数,带1个参数,n
{
 if(n>9)return 'A'+n-10;//判断,如果n>9则返回英文字母表中对应的英文字母.
 return n+'0';//否则返回0
}

main()//入口函数
{
 int n,val;//定义整数n
 char c;//字符c
 struct stack *p;//stack类型指针p
 p=InitStack();//执行函数initstack,返回值给p
 printf("请输入十进制数:");  //屏幕输出  请输入十进制数:
 scanf("%d",&n);//从键盘输入一个整数,给n
 printf("请输入要转换的进制:");
 scanf("%d",&val);  //从键盘输入一个整数,给val

printf("结果:");
 while(n>0)  //循环,如果n大于0则继续执行,否则跳出循环
 {
  c=change(n%val);  //执行change函数,返回值给c
  n/=val;
  Push(p,c);//执行push函数
 }
 while(p->length!=0)//循环,如果p中保存的length变量不等于0则继续,否则跳出
 {
  Pop(p,&c);  //执行pop函数
  printf("%c",c); //输出c变量中保存的字符
 }
 printf("\n");//换行
 return 0;//返回0
}

程序源码,定制专家 手机:18910620895 QQ:345139427 有空常联系。小黄人软件    期待与您再次合作。

时间: 2024-10-08 10:05:06

队列 句句分析 精辟解释 有图的相关文章

tcpdump抓包分析具体解释

說實在的,對於 tcpdump 這個軟體來說,你甚至能够說這個軟體其實就是個駭客軟體, 因為他不但能够分析封包的流向,連封包的內容也能够進行『監聽』, 假设你使用的傳輸資料是明碼的話,不得了,在 router 上面就可能被人家監聽走了! 非常可怕吶!所以,我們也要來瞭解一下這個軟體啊!(註:這個 tcpdump 必須使用 root 的身份執行) [[email protected] ~]# tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae] [-qX] [

ssh 实体关系分析确立(ER图-实体关系图)

比较简单的方式就是根据模仿同类产品,根据同类产品的进行模仿,表单就是一个起码要加的字段,然后根据项目需要额外增加字段. 注意:实体类之间的引用关系还需要考虑性能的影响.如:单向或是双向. 表设计: 设计好后: 写实体类 建立实体类到数据库的关联关系 概述 5.实体关系分析 1.类结构:带箭头是单线关联,不带箭头是双向关联 ---------------------------------------- class User (1)<------(*) class Survey  (1)-----

ElasticSearch评分分析 explian 解释和一些查询理解

ElasticSearch评分分析 explian 解释和一些查询理解 按照es-ik分析器安装了ik分词器.然后创建了一个索引用来演示,创建索引:PUT /index_ik_test.索引的结构如下: GET index_ik_test/_mapping { "index_ik_test": { "mappings": { "fulltext": { "properties": { "content":

Nginx源码分析:3张图看懂启动及进程工作原理

编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文由陈科在高可用架构群分享.转载请注明来自高可用架构公众号「ArchNotes」.   导读:很多工程师及架构师都希望了解及掌握高性能服务器开发,阅读优秀源代码是一种有效的方式,nginx 是业界知名的高性能 Web 服务器实现,如何有效的阅读及理解 nginx?本文用图解的方式帮助大家来更好的阅读及理解 nginx 关键环节的实现.   陈科,十年行业从业经验,曾在浙江电信.阿里巴巴.华为.五八同城任开发工程及架构师等职,目前负责河狸

09 信息化领域热词分类分析及解释 第三步 将清洗完毕的热词添加百度百科解释

功能要求为:1,数据采集,定期从网络中爬取信息领域的相关热词 2,数据清洗:对热词信息进行数据清洗,并采用自动分类技术生成自动分类计数生成信息领域热词目录. 3,热词解释:针对每个热词名词自动添加中文解释(参照百度百科或维基百科) 4,热词引用:并对近期引用热词的文章或新闻进行标记,生成超链接目录,用户可以点击访问: 5,数据可视化展示:① 用字符云或热词图进行可视化展示:② 用关系图标识热词之间的紧密程度. 6,数据报告:可将所有热词目录和名词解释生成 WORD 版报告形式导出. 本次完成第三

11 信息化领域热词分类分析及解释 第五步按目录爬取热词

功能要求为:1,数据采集,定期从网络中爬取信息领域的相关热词 2,数据清洗:对热词信息进行数据清洗,并采用自动分类技术生成自动分类计数生成信息领域热词目录. 3,热词解释:针对每个热词名词自动添加中文解释(参照百度百科或维基百科) 4,热词引用:并对近期引用热词的文章或新闻进行标记,生成超链接目录,用户可以点击访问: 5,数据可视化展示:① 用字符云或热词图进行可视化展示:② 用关系图标识热词之间的紧密程度. 6,数据报告:可将所有热词目录和名词解释生成 WORD 版报告形式导出. 这次完成了按

R语言画全基因组关联分析中的曼哈顿图(manhattan plot)

1.在linux中安装好R 2.准备好画曼哈顿图的R脚本即manhattan.r,manhattan.r内容如下: #!/usr/bin/Rscript #example : Rscript plot_manhatom.r XXX.assoc XXX.pdf argv <- commandArgs() #define the function to plot the manhatton and quantitle-quantitle plot plot_manhatton<-function(

DB2 锁问题分析与解释

DB2 应用中经常会遇到锁超时与死锁现象,那么这种现象产生的原因是什么呢.本文以试验的形式模拟锁等待.锁超时.死锁现象,并给出这些现象的根本原因. 试验环境: DB2 v9.7.0.6 AIX 6.1.0.0 采用默认的隔离级别CS STUDENT表的DDL与初始内容 ------------------------------------------------ -- DDL Statements for table "E97Q6C  "."STUDENT" --

栈、队列实例分析

1 设计包含min 函数的栈. 定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素. 要求函数min.push 以及pop 的时间复杂度都是O(1). 2 颠倒栈. 题目:用递归颠倒一个栈.例如输入栈{1, 2, 3, 4, 5},1 在栈顶. 颠倒之后的栈为{5, 4, 3, 2, 1},5 处在栈顶. 3 用数组实现一个队列 4 用两个栈实现一个队列 (1)用链表实现栈.队列 (2)用数组实现