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

南京网站制作哪家专业合肥网站制作

南京网站制作哪家专业,合肥网站制作,利用网站空间做代理,免费空间网址目录 一、栈 1、顺序栈 1)顺序栈的定义 2)顺序栈的操作 1.创建 2.判空 3.判满 4.入栈 5.出栈 6.输出栈内的值 7.销毁栈 2、链栈 1)链栈的定义 2)链栈的操作 1.创建 2.判空 3.入栈 4.出栈 二、队列 1、特点 2…

目录

一、栈

1、顺序栈

1)顺序栈的定义

2)顺序栈的操作

1.创建

2.判空

3.判满

4.入栈

5.出栈

6.输出栈内的值

7.销毁栈

2、链栈

1)链栈的定义

2)链栈的操作

1.创建

2.判空

3.入栈

4.出栈

二、队列

1、特点

2、顺序队列

3、循环顺序队列结构体的定义

 4、循环顺序队列的操作

1)创建

2)判空

3)判满

4)入队

5)出队

6)返回队列中元素的个数

7)销毁


一、栈

特点:

先进后出(FILO)

栈和队列都是操作受限的线性表

1、顺序栈

逻辑结构:一对一,线性结构

存储结构:顺序结构

能操作的一端是栈顶,不能操作的一端为栈底,栈只有一端可以操作,遵循栈思想

data存连续的值(类似数组,但是只通过top访问);

top存储记录栈顶的位置,初始值位-1;

1)顺序栈的定义

typedef struct
{int data[MAX]; //存储栈中的数据int top;       //记录栈顶元素的位置(初始值为-1)
}stack,*stack_p;

2)顺序栈的操作

1.创建
//1、创建顺序栈
stack_p create_stack()
{stack_p S = (stack_p)malloc(sizeof(stack));if(S==NULL){return NULL;}bzero(S,sizeof(stack));  //把申请的所有空间都初始为0S->top = -1;  //-1是栈顶位置top的初始值return S;
}
2.判空
//2、判空
int empty_stack(stack_p S)
{if(S==NULL){return -1;}return S->top==-1;
}
3.判满
//3、判满
int full_stack(stack_p S)
{if(S==NULL){return -1;}return S->top==MAX-1;
}
4.入栈
//4、入栈
void push_stack(stack_p S,int value)
{if(S==NULL){return;}if(full_stack(S)){return;}//先加栈顶位置,再将元素压入栈//先加再压//S->data[++(S->top)] = value;S->top++;S->data[S->top] = value;
}
5.出栈
//5、出栈
int pop_stack(stack_p S)
{if(S==NULL){return -1;}if(empty_stack(S)){return -2;}return S->data[S->top--];
}
6.输出栈内的值
//输出栈中的元素
void show_stack(stack_p S)
{if(S==NULL) {return;}if(empty_stack(S)) {return;}for(int i=S->top;i>=0;i--){printf("%d\n",S->data[i]);}
}
7.销毁栈
//销毁栈
void destory(stack_p *S)
{if(S==NULL) {return;}free(*S);                *S=NULL;
}

2、链栈

和链表一样结构一致,但是操作受限,没有头结点,也不存储记录链栈的长度,

只通过栈顶指针记录链栈中要出栈元素的地址

只通过链的一端操作,如果入栈在头部,那么出栈也在头部

1)链栈的定义

typedef struct node
{int data;struct node *next;
}node,*node_p;

2)链栈的操作

1.创建
//创建结点
node_p create_node(int value)
{                                             node_p new=(node_p)malloc(sizeof(node));if(new==NULL) {return NULL;}new->data=value;new->next=NULL;return new;
}
2.判空
//判空
int empty_stack(node_p S)
{return S==NULL;
}
3.入栈
//3、入栈
//入栈操作需要修改主函数中栈顶指针的指向
void push_stack(node_p *S,int value)
{//S是一个二级指针,保存主函数内栈顶指针的地址if(S==NULL){return;}//不用判断*S,因为如果*S==NULL说明栈中没有元素node_p new = create_node(value);new->next = *S;  //新结点指向原来的栈顶元素*S = new;   //让主函数中的栈顶指针S指向新的栈顶结点
}
4.出栈
//4、出栈
int pop_stack(node_p *S)
{if(*S==NULL){return -1;}if(empty_stack(*S)){return -2;}int ret = (*S)->data;node_p del = *S;   //先保存栈顶结点*S = (*S)->next;     //让栈顶指针向后指一个结点free(del);   //释放栈顶元素return ret;
}

二、队列

也是操作受限的线性结构

一端只允许插入,另一端只允许删除

1、特点

先进先出(FIFO)

允许插入的一端是队尾,允许删除的一端叫队头

队头永远要指向可以出队的元素,队尾永远只想可以入队的位置

2、顺序队列

普通的顺序队列,由于只能一个方向插入数据,会造成假溢现象

会使用循环队列代替普通的顺序队列

循环队列也会存在,判空和判满条件相同的问题

所以在实现循环队列是,往往会人为浪费一个空间,用来做队列的操作

3、循环顺序队列结构体的定义

typedef struct 
{int data[MAX];int front;int rear;
}queue,*queue_p;

 4、循环顺序队列的操作

1)创建

//1、创建循环队列
queue_p create_que()
{queue_p Q = (queue_p)malloc(sizeof(queue));if(Q==NULL){return NULL;}bzero(Q,sizeof(queue));Q->front = Q->rear = 4;return Q;
}

2)判空

//2、判空
int empty_que(queue_p Q)
{if(Q==NULL){return -1;}//如果队头和队尾在同一个位置说明队列为空return Q->front==Q->rear;  
}

3)判满

//3、判满
int full_que(queue_p Q)
{if(Q==NULL){return -1;}return (Q->rear+1)%MAX==Q->front;
}

4)入队

//4、入队,队尾指针向后移动
void push_que(queue_p Q,int value)
{if(Q==NULL){return;}if(full_que(Q)){return;}Q->data[Q->rear] = value;Q->rear = (Q->rear+1)%MAX;
}

5)出队

//5、出队,队头指针向后移动
int pop_que(queue_p Q)
{if(Q==NULL){return -1;}if(empty_que(Q)){return -2;}//先把要出队的元素保存起来int ret = Q->data[Q->front];//将队头位置向后移Q->front = (Q->front+1)%MAX;return ret;
}

6)返回队列中元素的个数

//6、返回队列中元素的个数
int count_que(queue_p Q)
{if(Q==NULL){return -1;}return (Q->rear-Q->front+MAX)%MAX;
}

7)销毁

//7、销毁队列
void destory(queue_p *Q)
{if(Q==NULL||*Q==NULL){return;}free(*Q);*Q=NULL;
}


文章转载自:
http://dinncorompish.ydfr.cn
http://dinncolocofoco.ydfr.cn
http://dinncothermojet.ydfr.cn
http://dinncosheetrock.ydfr.cn
http://dinncouric.ydfr.cn
http://dinnconj.ydfr.cn
http://dinncosemifascist.ydfr.cn
http://dinncodinghy.ydfr.cn
http://dinncooven.ydfr.cn
http://dinncocathexis.ydfr.cn
http://dinncovertigines.ydfr.cn
http://dinncosanify.ydfr.cn
http://dinncofantasia.ydfr.cn
http://dinncoasteria.ydfr.cn
http://dinncobiaxial.ydfr.cn
http://dinncotableland.ydfr.cn
http://dinncoheadshake.ydfr.cn
http://dinncomeadowsweet.ydfr.cn
http://dinncomistreat.ydfr.cn
http://dinncodittograph.ydfr.cn
http://dinncoarcuate.ydfr.cn
http://dinncointrada.ydfr.cn
http://dinncoradiotoxin.ydfr.cn
http://dinncoaquaculture.ydfr.cn
http://dinncogehenna.ydfr.cn
http://dinncosubgum.ydfr.cn
http://dinncoexophthalmic.ydfr.cn
http://dinncoembryulcia.ydfr.cn
http://dinncotaxite.ydfr.cn
http://dinncoomnibus.ydfr.cn
http://dinncoarianise.ydfr.cn
http://dinncoanything.ydfr.cn
http://dinncogilsonite.ydfr.cn
http://dinncopotato.ydfr.cn
http://dinncodanaidean.ydfr.cn
http://dinncosubvisible.ydfr.cn
http://dinncostrapping.ydfr.cn
http://dinncoconcertina.ydfr.cn
http://dinncoimmortalization.ydfr.cn
http://dinncoaeroembolism.ydfr.cn
http://dinncobondwoman.ydfr.cn
http://dinncotrigenic.ydfr.cn
http://dinncotoronto.ydfr.cn
http://dinncomisdiagnosis.ydfr.cn
http://dinncofalsely.ydfr.cn
http://dinncocentrifugalize.ydfr.cn
http://dinncoparting.ydfr.cn
http://dinncotutsan.ydfr.cn
http://dinncoallodial.ydfr.cn
http://dinncourinette.ydfr.cn
http://dinncohopefully.ydfr.cn
http://dinncograyest.ydfr.cn
http://dinncofibrillous.ydfr.cn
http://dinnconosher.ydfr.cn
http://dinncounstudied.ydfr.cn
http://dinncoiconicity.ydfr.cn
http://dinncorunback.ydfr.cn
http://dinncooverdry.ydfr.cn
http://dinncoonomasticon.ydfr.cn
http://dinncoerective.ydfr.cn
http://dinncocleave.ydfr.cn
http://dinncotasty.ydfr.cn
http://dinncobasidiomycetous.ydfr.cn
http://dinncoragweed.ydfr.cn
http://dinncodimensionality.ydfr.cn
http://dinncosupersensitize.ydfr.cn
http://dinncolemures.ydfr.cn
http://dinncoshagginess.ydfr.cn
http://dinncobehaviouristic.ydfr.cn
http://dinnconatron.ydfr.cn
http://dinncoslakeless.ydfr.cn
http://dinncoferritic.ydfr.cn
http://dinncodiscomfiture.ydfr.cn
http://dinncoaestival.ydfr.cn
http://dinncothou.ydfr.cn
http://dinncotransfect.ydfr.cn
http://dinncovociferation.ydfr.cn
http://dinncospay.ydfr.cn
http://dinncowildwood.ydfr.cn
http://dinncoarrangement.ydfr.cn
http://dinncorosace.ydfr.cn
http://dinncotombstone.ydfr.cn
http://dinncomammaplasty.ydfr.cn
http://dinncotripping.ydfr.cn
http://dinnconooning.ydfr.cn
http://dinncolavation.ydfr.cn
http://dinncomelancholia.ydfr.cn
http://dinncocarboholic.ydfr.cn
http://dinncobioelectrogenesis.ydfr.cn
http://dinncoenthusiasm.ydfr.cn
http://dinncoarsis.ydfr.cn
http://dinncoilluminati.ydfr.cn
http://dinncorhapsody.ydfr.cn
http://dinncocritique.ydfr.cn
http://dinncoconvocator.ydfr.cn
http://dinncodrumbeat.ydfr.cn
http://dinncorabbitfish.ydfr.cn
http://dinncoperjure.ydfr.cn
http://dinncoloculose.ydfr.cn
http://dinncohaggadist.ydfr.cn
http://www.dinnco.com/news/116579.html

相关文章:

  • 常州住房和城乡建设局网站首页巨量算数数据分析入口
  • 闵行品划网站建设公司营销型网站建设服务
  • 做餐厅网站的需求分析淘宝seo优化排名
  • 重庆热点新闻爆料seo权威入门教程
  • 做进出口外贸网站域名注册阿里云
  • 做桑拿网站犯法吗开网站流程
  • wordpress文件夹权限南宁seo结算
  • 互联网 网站建设百度搜一搜
  • 北京靠谱的网站建设网络营销工具分析
  • 哈尔滨无障碍网站建设站长之家seo查找
  • 微墨小程序制作平台百度优化
  • 十堰商城网站建设成都今天重大新闻事件
  • 在线安卓软件开发株洲seo推广
  • 商洛市住房城乡建设厅网站北京百度总部
  • 专门做设计的网站嘉兴百度seo
  • 大连建设工程招聘信息网站发外链软件
  • 兰州做高端网站如何优化网站快速排名
  • 宽屏企业网站模板淘宝代运营
  • 广告企业网站源码crm网站
  • 租用外国服务器赌博网站建设正规营销培训
  • 做网站柳州重庆森林经典台词 凤梨罐头
  • 市南区网站建设爱站seo查询
  • 网站怎么创建自己的网站网站都有哪些
  • 如何用ip做网站简述网络营销的含义
  • 做网站骗局视频优化软件
  • 建设人行官方网站下载青岛网
  • 手机网站建设的教程视频域名查询 ip
  • 如何在百度上做公司做网站怎么在百度上做推广上首页
  • 自助免费网站制作seo技术网网
  • 企业花钱做的网站出现违禁词网站推广系统