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

网站投稿系统怎么做网站制作流程是什么

网站投稿系统怎么做,网站制作流程是什么,做网站开发,网络规划设计师教程 下载12 栈、队列、二叉树 目录 12 栈、队列、二叉树 一、栈、队列、二叉树是什么? 二、栈 1. 特点:先进后出 -- 有底的盒子 2. 使用场景:函数调用 -- 中断机制 3. 实现栈的形式: 三、队列 1. 特点:先进先出 -- 水…

12 栈、队列、二叉树

目录

12 栈、队列、二叉树

一、栈、队列、二叉树是什么?

二、栈

1. 特点:先进后出 -- 有底的盒子

2. 使用场景:函数调用 -- 中断机制

3. 实现栈的形式:

三、队列

1. 特点:先进先出 -- 水管

2. 使用场景:消息队列(MQTT)

3. 实现队列的形式:

四、二叉树 -- 了解

1. 树形结构 -- 链式结构 -- 族谱

2. 使用场景:文件系统


一、栈、队列、二叉树是什么?

        -- 数据的一种存储结构         -- 保存数据

二、栈

1. 特点:先进后出         -- 有底的盒子

2. 使用场景:函数调用         -- 中断机制

3. 实现栈的形式:

(1)线性栈:数组

alt text

(2)链式栈:

        -- 链表的头插法         --因为链表是从头开始遍历的。

#include "stdio.h"
#include "string.h"
#include "stdlib.h"struct stack
{int data[5];  //栈存储空间int *ptemp;     //栈指针int *pstart;    //栈底int *pend;    //栈顶};struct stack * init_stack();
void push_stack(struct stack *p);
void pup_stack(struct stack *p);int main(int argc, char const *argv[])
{struct stack *p = init_stack();while (1){printf("*******栈操作********\n");printf("1.入栈 2.出栈 3.退出\n");printf("**********************\n");printf("请选择:");int n = 0;scanf("%d", &n);switch (n){case 1:printf("--->入栈\n");push_stack(p);break;case 2:printf("--->出栈\n");pup_stack(p);break;case 3:printf("--->退出\n");return 0;default:printf("输入错误,请重新输入!\n");break;}}return 0;
}struct stack * init_stack() //初始化栈
{//开辟栈空间struct stack *p = (struct stack *)malloc(sizeof(struct stack));//初始化//栈的存储空间memset(p->data,0,sizeof(p->data));//栈底p->pstart = p->data; //数组的首地址//栈顶p->pend = p->data + sizeof(p->data) / sizeof(p->data[0])-1;//首地址+偏移量(长度-1)//栈指针p->ptemp = p->pstart;return p;
}void push_stack(struct stack *p)
{//判断是否栈满if(p->ptemp == p->pend+1)   //因为栈指针指向下一个可以存储的空间{printf("栈已满,请联系管理员!\n");return;}printf("请输入您要保存的数据:");scanf("%d",p->ptemp);   //数据保存在栈指针指向的位置//栈指针指向下一个可以存储数据的空间p->ptemp++;printf("入栈成功!\n");
}void pup_stack(struct stack *p)
{//判断是否栈空if(p->ptemp == p->pstart){printf("栈空,请先入栈数据!\n");return;}//栈指针回到有数据的空间p->ptemp --;int num = *p->ptemp;printf("您出栈的数据是:%d\n",num);}

三、队列

1. 特点:先进先出 -- 水管

2. 使用场景:消息队列(MQTT)

3. 实现队列的形式:

(1)线性队列:数组

alt text

(2)链式队列:

                -- 链表的尾插法

#include "stdio.h"
#include "stdlib.h"
#include "string.h"struct queue
{int data[5];  // 队存储空间int *pstart;  // 队底int *pend;    // 队顶int *pin;   // 入队指针int *pout;  // 出队指针int count;  // 计数器    因为入队和出队是循环的,无法判断栈满,栈空int total; //入队总数
};struct queue * init_queue();
void push_queue(struct queue *p);
void pup_queue(struct queue *p);int main(int argc, char const *argv[])
{struct queue *p=init_queue();while (1){printf("*******队操作********\n");printf("1.入队 2.出队 3.退出\n");printf("**********************\n");printf("请选择:");int n = 0;scanf("%d", &n);switch (n){case 1:printf("--->入队\n");push_queue(p);break;case 2:printf("--->出队\n");pup_queue(p);break;case 3:printf("--->退出\n");return 0;default:printf("输入错误,请重新输入!\n");return 0;}}return 0;
}struct queue * init_queue()
{//开辟队空间struct queue *p = (struct queue *)malloc(sizeof(struct queue));//初始化//队的存储空间memset(p->data,0,sizeof(p->data));//队底p->pstart = p->data;//队顶p->pend = p->data + sizeof(p->data) / sizeof(p->data[0])-1;//入队指针p->pin = p->pstart;//出队指针 p->pout = p->pstart;//计数器p->count = 0;//入队总数p->total = sizeof(p->data) / sizeof(p->data[0]);return p;
}void push_queue(struct queue *p)
{//判断是否队满if(p->count == p->total){printf("队已满,请联系管理员!\n");return;}printf("请输入您要保存的数据:");scanf("%d",p->pin);//队指针指向下一个可以存储数据的空间p->pin++;//计数器累加p->count ++;//循环入队if(p->pin == p->pend+1) //开始循环{p->pin = p->pstart;}printf("入队成功!\n");
}void pup_queue(struct queue *p)
{//判断是都队空if(p->count == 0){printf("队空,请先入队数据!\n");return;}//出队int num = *p->pout;//出队指针指向下一个可以出队的空间p->pout ++;//计数器累减p->count--;//循环出队if(p->pout == p->pend+1){p->pout = p->pstart;}printf("您出队的数据是:%d\n",num);
}

四、二叉树 -- 了解

1. 树形结构 -- 链式结构 -- 族谱

2. 使用场景:文件系统

alt text

icon-default.png?t=N7T8https://blog.csdn.net/m0_71813740/article/details/141090117?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22141090117%22%2C%22source%22%3A%22m0_71813740%22%7D

http://www.hkea.cn/news/607580/

相关文章:

  • 交警网站建设整改百度推广怎么推广
  • 重庆网站建设哪里比较好呢网站下载
  • 网站运行速度慢的原因看b站二十四小时直播间
  • 电商网站开发服务全网营销骗局揭秘
  • 个人网站怎么做互联网营销师培训课程免费
  • 微信网站建设价格网站开发报价方案
  • wordpress utc时间慢8小时大连seo关键词排名
  • 中国建设承包商网站创建软件平台该怎么做
  • 中小企业网站建设费用海外推广服务
  • 企业名称的英文做网站名seo是怎么优化推广的
  • 手机在线建站西安seo服务公司
  • 网站开发有前途吗我也要投放广告
  • 备案 网站名称怎么写crm软件
  • 扁平式网站模板b2b网站推广优化
  • 做外贸网站网络营销咨询服务
  • 江门网站建设方案报价淘宝seo优化怎么做
  • 盘龙城做网站推广网站推广
  • 如何做电子书网站域名站长工具
  • 物联网平台有哪些排名优化外包公司
  • 秦皇岛汽车网站制作数字营销工具
  • 培训教育的网站怎么做东莞做网站的联系电话
  • 云南做网站的公司外贸谷歌优化
  • 网页设计学徒培训可试学巢湖seo推广
  • 让顾客心动的句子seo模拟点击软件源码
  • 设计类专业包括哪些kj6699的seo综合查询
  • 手机网站制作哪家好查关键词
  • 米拓企业网站管理系统电商培训机构排名前十
  • 做效果图有哪些网站seo点击排名
  • 网络营销推广网站收录seo推广排名平台有哪些
  • 产品经理如何看待网站开发广州软件系统开发seo推广