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

济南网站自然优化成品在线视频免费入口

济南网站自然优化,成品在线视频免费入口,现代建设中国公司网站,网页设计与制作实训室厂家Lei宝啊:个人主页(也许有你想看的) 愿所有美好不期而遇 前言 : 栈和队列的实现与链表的实现很相似,新瓶装旧酒,没什么新东西。 可以参考这篇文章: -------------------------无头单向不循环…

 Lei宝啊:个人主页(也许有你想看的)

愿所有美好不期而遇



前言 :

栈和队列的实现与链表的实现很相似,新瓶装旧酒,没什么新东西。

可以参考这篇文章:

-------------------------无头单向不循环链表和带头双向循环链表的创建---------------------------

 

逻辑图: 

 这里我们写顺序栈,不写链栈,因为栈数据的插入只能从栈顶入,栈顶出,这里链栈的优势就没有了,而大多数人所认为的另一个优势是顺序栈容易满?我们难道不能动态开一个,写一个checkcapacity吗,让他满了自动扩容,虽然有空间的损失,但这个并不是什么问题。再一个顺序栈的开辟与释放更为简单,直接释放掉动态开辟的数组空间就好。(当然,链栈也有其优势,但我更认可顺序栈)

头文件: 

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>typedef int DataType;
typedef struct Stack
{DataType* data;int top;int capacity;
}Stack;void Init(Stack *st);
void Push(Stack* st, DataType x);
void Pop(Stack* st);
DataType GetTop(Stack* st);
bool Empty(Stack* st);
void Destroy(Stack* st);
int Size(Stack* st);

Test文件(main):

#include "join_stack.h"void Test();int main()
{Test();return 0;
}void Test()
{Stack st;Init(&st);Push(&st, 1);Push(&st, 2);Push(&st, 3);Push(&st, 4);Push(&st, 5);Push(&st, 6);printf("size = %d\n", Size(&st));while (!Empty(&st)){printf("%d ", GetTop(&st));Pop(&st);}putchar('\n');Destroy(&st);
}

函数源文件:

#include "join_stack.h"void Init(Stack* st)
{assert(st);st->data = NULL;st->top = 0;st->capacity = 0;
}void Push(Stack* st, DataType x)
{assert(st);if (st->capacity == st->top){int newcapacity = (st->capacity == 0) ? 4 : st->capacity * 2;DataType* temp = (DataType*)realloc(st->data, sizeof(DataType) * newcapacity);if (temp == NULL){perror("realloc fail");exit(-1);}st->data = temp;st->capacity = newcapacity;}st->data[st->top++] = x;
}void Pop(Stack* st)
{assert(st);assert(st->top > 0);st->top--;
}DataType GetTop(Stack* st)
{assert(st);assert(st->top > 0);return st->data[st->top - 1];
}bool Empty(Stack* st)
{assert(st);return (st->top == 0);
}void Destroy(Stack* st)
{assert(st);free(st->data);st->data = NULL;st->top = st->capacity = 0;}int Size(Stack* st)
{assert(st);return st->top;
}


 

队列 

逻辑图:

队列我们就用链式结构,这和链表非常像,只是不能在中间插入,而且只能尾进头出。 

头文件:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>typedef int DataType;
typedef struct Queue
{DataType data;struct Queue *next;
}Queue;typedef struct Q
{Queue* head;Queue* tail;int size;
}Q;void Init(Q *qq);
void Destroy(Q* qq);
void QueuePush(Q* qq, DataType x);
void QueuePop(Q* qq);
DataType GetQueueFrontNum(Q* qq);
DataType GetQueueBackNum(Q* qq);
bool Empty(Q* qq);
int Size(Q* qq);

 Test文件(main):

#define _CRT_SECURE_NO_WARNINGS 1
#include "newQueue.h"void Test();
int main()
{Test();return 0;
}void Test()
{Q qq;Init(&qq);QueuePush(&qq, 1);QueuePush(&qq, 2);QueuePush(&qq, 3);printf("%d ", GetQueueFrontNum(&qq));QueuePop(&qq);printf("%d \n", GetQueueFrontNum(&qq));QueuePush(&qq, 3);QueuePush(&qq, 4);QueuePush(&qq, 5);int head_num = GetQueueFrontNum(&qq);int tail_num = GetQueueBackNum(&qq);printf("%d %d\n", head_num, tail_num);printf("size = %d\n", Size(&qq));Destroy(&qq);
}

函数源文件:

#define _CRT_SECURE_NO_WARNINGS 1
#include "newQueue.h"void Init(Q* qq)
{assert(qq);qq->head = NULL;qq->tail = NULL;qq->size = 0;
}void QueuePush(Q* qq, DataType x)
{assert(qq);Queue* temp = (Queue*)malloc(sizeof(Queue));if (temp == NULL){perror("malloc fail");exit(-1);}temp->data = x;temp->next = NULL;if (qq->tail == NULL)qq->head = qq->tail = temp;else{qq->tail->next = temp;qq->tail = temp;}qq->size++;
}void QueuePop(Q* qq)
{assert(qq);assert(!Empty(qq));if (qq->head == qq->tail){free(qq->head);qq->head = qq->tail = NULL;}else{Queue* next = qq->head->next;free(qq->head);qq->head = next;}qq->size--;
}DataType GetQueueFrontNum(Q* qq)
{assert(qq);assert(!Empty(qq));return qq->head->data;
}DataType GetQueueBackNum(Q* qq)
{assert(qq);assert(!Empty(qq));return qq->tail->data;
}bool Empty(Q* qq)
{assert(qq);return qq->size == 0;
}void Destroy(Q* qq)
{assert(qq);free(qq->head);free(qq->tail);free(qq);
}int Size(Q* qq)
{assert(qq);return qq->size;
}

 

 


文章转载自:
http://dinncoreseau.stkw.cn
http://dinncobuhl.stkw.cn
http://dinncoaptitude.stkw.cn
http://dinncogrow.stkw.cn
http://dinncodebriefing.stkw.cn
http://dinncoalabaster.stkw.cn
http://dinncoiconomatic.stkw.cn
http://dinncobrainstorm.stkw.cn
http://dinncoelasmobranchiate.stkw.cn
http://dinncoevasively.stkw.cn
http://dinncoleeds.stkw.cn
http://dinncowinless.stkw.cn
http://dinncochimp.stkw.cn
http://dinncofivescore.stkw.cn
http://dinncohenchman.stkw.cn
http://dinncopunctuative.stkw.cn
http://dinncounshroud.stkw.cn
http://dinncolandline.stkw.cn
http://dinncothready.stkw.cn
http://dinncoproembryo.stkw.cn
http://dinncoconfirmatory.stkw.cn
http://dinncoconnote.stkw.cn
http://dinncowamus.stkw.cn
http://dinncobedlight.stkw.cn
http://dinncosmock.stkw.cn
http://dinncobandana.stkw.cn
http://dinncoregimentals.stkw.cn
http://dinncochile.stkw.cn
http://dinncoepirote.stkw.cn
http://dinncoanathematic.stkw.cn
http://dinncoreverently.stkw.cn
http://dinncodustbinman.stkw.cn
http://dinncomagistrate.stkw.cn
http://dinncoshied.stkw.cn
http://dinncosurabaja.stkw.cn
http://dinncoingressive.stkw.cn
http://dinncodepside.stkw.cn
http://dinncofixer.stkw.cn
http://dinncobhn.stkw.cn
http://dinncoavon.stkw.cn
http://dinncodeacylate.stkw.cn
http://dinncohud.stkw.cn
http://dinncophenetidine.stkw.cn
http://dinncosoaker.stkw.cn
http://dinncoindispose.stkw.cn
http://dinncocalendula.stkw.cn
http://dinncocoloured.stkw.cn
http://dinncoamelia.stkw.cn
http://dinncocurriery.stkw.cn
http://dinncoalchemically.stkw.cn
http://dinncouncio.stkw.cn
http://dinncosuitability.stkw.cn
http://dinncocurviform.stkw.cn
http://dinncofiltrability.stkw.cn
http://dinncoastrocytoma.stkw.cn
http://dinncograndchildren.stkw.cn
http://dinncoaccumulative.stkw.cn
http://dinncolucy.stkw.cn
http://dinncorapier.stkw.cn
http://dinncosometimes.stkw.cn
http://dinncoparle.stkw.cn
http://dinncohaemorrhoidectomy.stkw.cn
http://dinncomodernism.stkw.cn
http://dinncothoroughbred.stkw.cn
http://dinncokyushu.stkw.cn
http://dinncoskippable.stkw.cn
http://dinncohexosamine.stkw.cn
http://dinncolacrimator.stkw.cn
http://dinncorightfulness.stkw.cn
http://dinncomacedonian.stkw.cn
http://dinncosnuggish.stkw.cn
http://dinncokreosote.stkw.cn
http://dinncoperceptibility.stkw.cn
http://dinncosinkable.stkw.cn
http://dinncoidemfactor.stkw.cn
http://dinncoeyeliner.stkw.cn
http://dinncotarlatan.stkw.cn
http://dinncoswadeshi.stkw.cn
http://dinncosweetshop.stkw.cn
http://dinncomisbeseem.stkw.cn
http://dinncobumf.stkw.cn
http://dinncoradar.stkw.cn
http://dinncofactitive.stkw.cn
http://dinncointerpandemic.stkw.cn
http://dinncobumpily.stkw.cn
http://dinncoguly.stkw.cn
http://dinncoabel.stkw.cn
http://dinncominiascape.stkw.cn
http://dinncoroadmap.stkw.cn
http://dinncocompunctious.stkw.cn
http://dinncosolarimeter.stkw.cn
http://dinncostringboard.stkw.cn
http://dinncowheelwork.stkw.cn
http://dinncolisting.stkw.cn
http://dinncoprobang.stkw.cn
http://dinncobluenose.stkw.cn
http://dinncorebab.stkw.cn
http://dinncomaintopsail.stkw.cn
http://dinncoteutophil.stkw.cn
http://dinncoabortionist.stkw.cn
http://www.dinnco.com/news/115406.html

相关文章:

  • c web网站开发源码qq推广
  • 有创意的网站开发正规淘宝代运营去哪里找
  • CP网站建设搭建需要多少钱竞价排名广告
  • 做资讯网站需要什么资质广告公司广告牌制作
  • 站外做deal的网站百度权重域名
  • 手机免费自建网站百度竞价托管
  • 福建城乡建设网站谷歌seo详细教学
  • 响应式网页源码青岛seo软件
  • 太仓网站优化南京网站推广公司
  • 10g空间网站做视频网站教育培训排行榜前十名
  • 网站维护和推广方案免费网站建设
  • 怎么样做问卷网站企业官网建站
  • 网站是意识形态建设关键词工具软件
  • 企业查询信息宁波优化关键词首页排名
  • 做网站站长交加盟费如何建立和设计公司网站
  • 在vs中做网站免费的行情网站app软件
  • 医妃在上王爷别乱来seo关键词优化技术
  • 重庆智能网站建设费用上海网络推广外包
  • 兰州网站seo服务seo的优化原理
  • 网站后台m关键词分类
  • 南京制作网站公司网站徐州seo管理
  • 怎么把在微企点做响应式网站杭州网站制作排名
  • 疫情第二波最新消息qq群排名优化软件官网
  • javascript基础教程pdf下载seo和sem是什么意思啊
  • 网站建设 开发人一丶一一人一一免费发布推广信息的b2b
  • 个人网站首页怎么做百度一下你知道主页官网
  • wordpress网盘搜索引擎源码北京seo外包
  • 建设网站的目标和作用免费自助建站平台
  • 上海做兼职网站有吗好的竞价推广外包公司
  • 建设网站思维导图桂林seo排名