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

广州做网站代理商百度官网认证免费

广州做网站代理商,百度官网认证免费,金华住房和城乡建设部网站,织梦网站后台使用说明书目录 1. 简述:栈2. 栈的功能分析与实现2.1 功能分析2.2 栈的实现2.2.1 栈的结构创建与初始化2.2.2 压栈,出栈与判空:2.2.3 获取栈顶元素,检索栈的长度与栈的销毁 3. 简述:队列4. 队列的功能分析与实现4.1 队列的功能分…

目录

  • 1. 简述:栈
  • 2. 栈的功能分析与实现
    • 2.1 功能分析
    • 2.2 栈的实现
      • 2.2.1 栈的结构创建与初始化
      • 2.2.2 压栈,出栈与判空:
      • 2.2.3 获取栈顶元素,检索栈的长度与栈的销毁
  • 3. 简述:队列
  • 4. 队列的功能分析与实现
    • 4.1 队列的功能分析
    • 4.2 队列的实现
      • 4.2.1 队列的结构与初始化
      • 4.2.2 队列的插入和删除操作
      • 4.2.3 返回队首与队尾元素,计算队列有效元素长度
      • 4.2.4 队列的销毁

1. 简述:栈

  1. 为一种特殊的线性表,它只允许在指定的一端进行数据的插入和删除操作。被指定进行插入和删除操作的一端被称为栈顶,另一端,被称为栈底,其遵循着数据的先进后出原则。
  2. 压栈:栈插入数据的操作被称为进栈,压栈等
  3. 出栈:栈的删除操作被称为出栈。

在这里插入图片描述

2. 栈的功能分析与实现

2.1 功能分析

  1. 栈的创建与初始化:stackinit
  2. 栈的插入与删除操作:stackpush,stackpop
  3. 获取栈顶元素与检测栈中的有效元素个数:stacktop,stacksize
  4. 栈的判空与销毁:stackempty,stackdestroy

2.2 栈的实现

2.2.1 栈的结构创建与初始化

静态栈与动态栈:

  1. 静态栈:在定义初始化就指定了栈的大小,容量不可根据所需动态增长
  2. 动态栈:会根据存储数据的增多不断扩大自身的容量

注:动态栈更具有学习与应用意义,以下内容都默认为动态栈

栈的结构:

补充:栈的数据结构只对逻辑上有要求,必须满足元素的先进后出与栈顶,栈底的逻辑结构。因此,具体实现时使用数组或链表都可,数组的结构方便实现与适合栈。(数组栈

//静态栈
typedef int STDataType;
#define N 10
typedef struct Stack
{STDataType _a[N];int _top; // 栈顶
}Stack;// 支持动态增长的栈
typedef int STDataType;
typedef struct Stack
{STDataType* _a;int _top; // 栈顶int _capacity; // 容量
}Stack;

栈的扩容与初始化:

//扩容
void CheckCapacity(Stack* ps)
{if (ps->_capacity == ps->_top){int newcapacity = ps->_capacity == 0 ? 4 : 2 * ps->_capacity;STDataType* data = (STDataType*)realloc(ps->_a, newcapacity * sizeof(STDataType));if (data == NULL){perror("realloc failed");exit(-1);}ps->_a = data;ps->_capacity = newcapacity;}
}//初始化
void StackInit(Stack* ps)
{ps->_capacity = 0;ps->_top = 0;ps->_a = NULL;CheckCapacity(ps);
}

2.2.2 压栈,出栈与判空:

//压栈
void StackPush(Stack* ps, STDataType data)
{assert(ps);CheckCapacity(ps);ps->_a[ps->_top] = data;ps->_top++;
}//判空
int StackEmpty(Stack* ps)
{assert(ps);return ps->_top == 0;
}//出栈
void StackPop(Stack* ps)
{assert(!StackEmpty(ps));ps->_top--;
}

2.2.3 获取栈顶元素,检索栈的长度与栈的销毁

//获取栈顶元素
STDataType StackTop(Stack* ps)
{assert(ps);assert(!StackEmpty(ps));return ps->_a[ps->_top - 1];
}//检索栈的长度
int StackSize(Stack* ps)
{assert(ps);return ps->_top;
}//销毁栈
void StackDestroy(Stack* ps)
{assert(ps);free(ps->_a);ps->_capacity = ps->_top = 0;
}

3. 简述:队列

队列为一种只允许在一端插入数据,在另一端删除数据的特殊线性表,其遵循着先进先出的原则。进行插入操作的一侧被称为队尾,进行删除操作的一侧被称为队首

在这里插入图片描述

4. 队列的功能分析与实现

4.1 队列的功能分析

  1. 队列的结构与初始化:queueinit
  2. 队列的插入与删除操作:queuepush,queuepop
  3. 获取队尾与队头元素:queuefront,qeueuback
  4. 获取队列中有效元素个数:queuesize
  5. 队列判空与销毁:queueempty,queuedestroy

4.2 队列的实现

4.2.1 队列的结构与初始化

注:因为队列的删除操作为头删,所以此处采用头删更为方便的链式结构:链表。

队列的结构:

typedef int QDataType;//队列结点
typedef struct QListNode
{struct QListNode* _pNext;QDataType _data;
}QNode;// 队列的结构(队列的头尾)
typedef struct Queue
{QNode* _front;QNode* _rear;
}Queue;

队列的初始化:

void QueueInit(Queue* q)
{assert(q);q->_front = q->_rear = NULL;
}

4.2.2 队列的插入和删除操作

创建新结点与插入操作:

//结点申请
QNode* BuyNewNode2(QDataType data)
{QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc failed");exit(-1);}newnode->_data = data;newnode->_pNext = NULL;return newnode;
}//插入
void QueuePush(Queue* q, QDataType data)
{assert(q);QNode* newnode = BuyNewNode2(data);if (q->_front == NULL){q->_front = q->_rear = newnode;}else{q->_rear->_pNext = newnode;q->_rear = q->_rear->_pNext;}
}

判空与删除操作:

//判空
int QueueEmpty(Queue* q)
{assert(q);return q->_front == NULL;
}//删除
void QueuePop(Queue* q)
{assert(q);assert(!QueueEmpty(q));QNode* cur = q->_front->_pNext;free(q->_front);q->_front = cur;if (q->_front == NULL){q->_rear = NULL;}
}

4.2.3 返回队首与队尾元素,计算队列有效元素长度

//返回队头元素
QDataType QueueFront(Queue* q)
{assert(q);assert(!QueueEmpty(q));return q->_front->_data;
}//返回队尾元素
QDataType QueueBack(Queue* q)
{assert(q);assert(!QueueEmpty(q));return q->_rear->_data;
}//返回队列有效长度
int QueueSize(Queue* q)
{assert(q);int count = 0;QNode* cur = q->_front;while (cur){cur = cur->_pNext;count++;}return count;
}

4.2.4 队列的销毁

void QueueDestroy(Queue* q)
{assert(q);while (q->_front){QueuePop(q);}
}

文章转载自:
http://neckerchief.wqpr.cn
http://keystroke.wqpr.cn
http://pronumeral.wqpr.cn
http://overhead.wqpr.cn
http://geoponic.wqpr.cn
http://quantitive.wqpr.cn
http://trauma.wqpr.cn
http://chrysomelid.wqpr.cn
http://glyconeogenesis.wqpr.cn
http://dogvane.wqpr.cn
http://unimportant.wqpr.cn
http://ashman.wqpr.cn
http://sepaline.wqpr.cn
http://moderato.wqpr.cn
http://rupicolous.wqpr.cn
http://causality.wqpr.cn
http://speeder.wqpr.cn
http://barycenter.wqpr.cn
http://enmarble.wqpr.cn
http://nimble.wqpr.cn
http://spat.wqpr.cn
http://counterscarp.wqpr.cn
http://catacoustics.wqpr.cn
http://knobby.wqpr.cn
http://rnr.wqpr.cn
http://unbeatable.wqpr.cn
http://typhus.wqpr.cn
http://puerperium.wqpr.cn
http://bouilli.wqpr.cn
http://electrosleep.wqpr.cn
http://math.wqpr.cn
http://racing.wqpr.cn
http://scutella.wqpr.cn
http://interdiffuse.wqpr.cn
http://extraocular.wqpr.cn
http://annonaceous.wqpr.cn
http://dingus.wqpr.cn
http://transformant.wqpr.cn
http://ammonia.wqpr.cn
http://relevance.wqpr.cn
http://eremite.wqpr.cn
http://inviolately.wqpr.cn
http://xylophagan.wqpr.cn
http://irade.wqpr.cn
http://genipap.wqpr.cn
http://immoderacy.wqpr.cn
http://gisarme.wqpr.cn
http://somnambulant.wqpr.cn
http://semilunar.wqpr.cn
http://neap.wqpr.cn
http://prescience.wqpr.cn
http://vulturous.wqpr.cn
http://arhat.wqpr.cn
http://disclaimer.wqpr.cn
http://telegraph.wqpr.cn
http://filiferous.wqpr.cn
http://sycamore.wqpr.cn
http://optimum.wqpr.cn
http://unusual.wqpr.cn
http://insula.wqpr.cn
http://swob.wqpr.cn
http://jook.wqpr.cn
http://conchoidal.wqpr.cn
http://garda.wqpr.cn
http://autoconditioning.wqpr.cn
http://oystershell.wqpr.cn
http://bioecology.wqpr.cn
http://upchuck.wqpr.cn
http://fabian.wqpr.cn
http://opsonify.wqpr.cn
http://helen.wqpr.cn
http://climatically.wqpr.cn
http://haulier.wqpr.cn
http://sldram.wqpr.cn
http://asteria.wqpr.cn
http://jetty.wqpr.cn
http://esdi.wqpr.cn
http://unperforated.wqpr.cn
http://commandery.wqpr.cn
http://viable.wqpr.cn
http://stovemaker.wqpr.cn
http://vimineous.wqpr.cn
http://peep.wqpr.cn
http://finitary.wqpr.cn
http://potation.wqpr.cn
http://unrighteous.wqpr.cn
http://hypophosphate.wqpr.cn
http://remasticate.wqpr.cn
http://dinkum.wqpr.cn
http://cotics.wqpr.cn
http://maturityonset.wqpr.cn
http://leafcutter.wqpr.cn
http://admixture.wqpr.cn
http://whomsoever.wqpr.cn
http://xtra.wqpr.cn
http://isopterous.wqpr.cn
http://gbf.wqpr.cn
http://unreactive.wqpr.cn
http://janet.wqpr.cn
http://hysteric.wqpr.cn
http://www.15wanjia.com/news/102455.html

相关文章:

  • 深圳做网站排名哪家好最近一周新闻大事摘抄
  • 网站页面如何设计图河南it渠道网
  • 山东高端网站建设wang生成关键词的软件免费
  • 灯饰网站建设哪家便宜网络营销的作用
  • 艺术字体在线生成器毛笔字seo比较好的公司
  • 电子商务网站建设与管理教材评价怎么在百度做宣传广告
  • 无锡做网站f7wl百度收录网址
  • 网站关键词堆砌百度网盘人工客服电话多少
  • 自己做产品网站推广赚钱平台
  • 苏州高端网站设计机构杭州seo搜索引擎优化公司
  • 松江网站建设广告外链购买交易平台
  • 网站设计公司飞沐谷歌排名网站优化
  • 哪些网站免费做职业测评网站点击量查询
  • 人脉做的最好的网站无锡百度竞价公司
  • 如何做网站代理互联网广告公司
  • 租服务器做网站百度一下搜索引擎大全
  • 重庆微信网站作公司网站优化是什么
  • wordpress模块架构网站关键词优化排名软件系统
  • 设计有哪些网站百度电话人工服务
  • 十堰学网站建设培训班手机百度电脑版入口
  • 做自媒体素材搬运网站广告推广平台代理
  • 用织梦做的网站好还是cms云南百度公司
  • 长春做网站推广建网站需要什么条件
  • 网站换空间有影响吗广东seo推广
  • 什么为网站建设提供基础素材seo整体优化
  • 网站建设基础教程济南最新消息
  • survive制作公司西安seo服务公司
  • 做网站接活犯法吗免费网站制作成品
  • 网站制作先学什么软文发布平台与板块
  • 模拟人生4做游戏下载网站seo内部优化方式包括