当前位置: 首页 > news >正文

有哪些做家教网站百度搜索智能精选

有哪些做家教网站,百度搜索智能精选,wordpress 圆形头像,平潭建设局网站首页目录 前言 一、栈 1.栈的表示和实现 1.栈的顺序存储表示和实现 1.C语言实现 2.C实现 2.栈的链式存储表示和实现 1.C语言实现 2.C实现 2.栈的应用 1.数制转换 二、队列 1.栈队列的表示和实现 1.顺序队列的表示和实现 2.链队列的表示和实现 2.循环队列 前言 这篇文…

目录

前言

一、栈

1.栈的表示和实现

1.栈的顺序存储表示和实现

1.C语言实现

2.C++实现

2.栈的链式存储表示和实现

1.C语言实现

2.C++实现

2.栈的应用

1.数制转换

二、队列

1.栈队列的表示和实现

1.顺序队列的表示和实现

2.链队列的表示和实现

2.循环队列


前言

    这篇文章主要介绍栈和队列的用法。

一、栈

        栈和队列都是访问受限的线性表。栈仅允许在表尾进行插入和删除操作。对于栈来说,允许操作的那一端叫栈顶,表头端口称为栈底。不含元素的空表称为空栈。

        栈的示意图如下:

  图1.栈的示意图

1.栈的表示和实现

        和线性表一样,栈也有两种存储表示方法。

1.栈的顺序存储表示和实现

        栈顶指针和栈中元素之间的关系如下图所示

        图2.栈顶指针和栈中元素之间的关系

1.C语言实现

        顺序栈的C语言实现看这里。

2.C++实现

        顺序栈的C++实现在这里。

2.栈的链式存储表示和实现

        链栈指的是采用链式存储实现的栈。链栈的示意图如下。

        图3.链栈示意图

        链栈的结点结构与单链表相同,这里不需要使用单链表的头结点。

1.C语言实现

        我用C语言实现了链栈,具体的实现可以看这篇文章。

2.C++实现

        C++的实现在这里。

2.栈的应用

1.数制转换

        例如我们要把十进制的168转成8进制的250。算法如下:

        图4.进制转换的算法

        这里使用C语言实现了一下,其实进制转换的过程就是栈push和pop的过程,核心代码如下:

// 数制转换函数
void conversion(int decimalNumber, int base) {SqStack stack;initSqStack(&stack); // 初始化栈// 字符集用于将余数转换为相应的字符char charSet[] = "0123456789ABCDEF";// 进行数制转换while (decimalNumber != 0) {int remainder = decimalNumber % base; // 计算余数pushSqStack(&stack, remainder); // 将余数入栈decimalNumber /= base; // 更新十进制数}// 输出转换结果printf("转换结果为:");while (!sqStackEmpty(&stack)) {int digit;popSqStack(&stack, &digit); // 从栈中取出数字printf("%c", charSet[digit]); // 输出对应的字符}printf("\n");
}void conversionTestUnit(void){int decimalNumber, base;// 输入十进制数和目标数制printf("请输入要转换的十进制数:");scanf("%d", &decimalNumber);printf("请输入目标数制(例如,二进制输入2,八进制输入8,十六进制输入16):");scanf("%d", &base);// 进行数制转换并输出结果printf("将十进制数 %d 转换为 %d 进制的结果是:\n", decimalNumber, base);conversion(decimalNumber, base);
}

二、队列

        队列也是一种访问受限的线性表,仅允许在表头删除,表尾插入操作。队列是一种先进先出(FIFO)的线性表。

        队列的示意图如下:

        图4.队列的示意图

1.栈队列的表示和实现

1.顺序队列的表示和实现

        在队列的顺序存储结构中,除了使用使用一组连续的存储单元存放队列数据元素之外,设置一个头结点和尾节点。我们约定初始化的时候front = rear = 0.入队之后front+1;出队列之后,rear+1。        

              图5.顺序队列中头指针和尾指针以及数据元素之间的关系

        这里分别使用C语言和C++实现了顺序队列。

2.链队列的表示和实现

        使用链表表示的队列称为链队。示意图如下:

        图6.链队示意图

        这里分别使用C语言和C++实现了链队列。

2.循环队列

        为了防止顺序栈的“假溢出问题”,引入了循环队列。即牺牲顺序队列的一个存储空间,进行队尾+1取模运算。

        循环队列的示意图如下:

        图5.循环队列示意图

        这里分别使用C语言和C++实现了循环队列。

http://www.dt0577.cn/news/53808.html

相关文章:

  • 广州做响应式网站友情链接你会回来感谢我
  • 网站建设与维护banner微信营销技巧
  • 色系网站哪里有专业排名优化工具
  • 上海知名网站建设公司东莞推广公司
  • 网站建设的实习报告扫图片识别图片原图
  • 哪里做网站的百度贴吧怎么做推广
  • 水墨网站设计欣赏网络营销推广策划的步骤
  • 给外国小孩 做 英语题用的网站企业seo职位
  • 上海网站制作建设是什么百度大搜推广
  • 天津网站建设定做合肥网络营销公司
  • 北京市住房和城乡建设委员会网站6北京seo编辑
  • 自主网站谷歌搜索广告优化
  • wordpress booked百度优化是什么
  • 沈阳网站开发制作东莞网络营销代运营
  • 网站如何优化排名软件百度网页版入口
  • 做外汇都要看什么网站大连百度关键词优化
  • web网站怎么做超链接windows优化大师好用吗
  • 移动建站平台抖音搜索关键词推广
  • wordpress最新版下载长沙seo优化推广
  • 东莞做网站多少钱手机优化大师哪个好
  • 成都 网站建设公司站长推荐产品
  • 昆山靠谱的网站建设公司护肤品推广软文
  • 网站编辑招聘网络营销 长沙
  • 网站期刊怎么做网页游戏推广平台
  • 移动端网页制作流程上海搜索引擎关键词优化
  • php网站系统seo怎么发布外链
  • 网站推广公司水果茶温州seo按天扣费
  • asp网站栏目修改国内网站建设公司
  • 吉林大学学院网站建设群曼联官方发文
  • 线下推广的好处seo优化方法有哪些