第三章:栈和队列
来源:互联网 发布:java批量添加数据 编辑:程序博客网 时间:2024/06/08 14:31
栈:是限制仅在表的一端进行插入和删除运算的线性表,通常称插入.删除的这一端为栈顶,另一端为栈底,当表中没有元素是称为空栈。
栈的基本运算有六种:
(1) IntStack(s);//构造一个空栈。
(2)StackEmpty(s);//判栈空。
(3)StackFull(s);//判栈满。
(4)Push(s,x);//进栈。
(5)Pop(s);//退栈。
(6)StackTop(s);//取栈顶元素。
链栈:栈的链式存储结构。
队列:也是一种运算首先得线性表,它只允许在表的一端进行进入,而在另一端进行删除。允许删除的一段为队头,允许插入的一段称为队尾。
顺序队列的基本运算:
#ifndef dui
void initqueue(cirqueue *q); #include <stdio.h> //指空队。 void initqueue(cirqueue *q) //判队空。 int queueempty(cirqueue *q) } //判队满。 //入队 void enqueue(cirqueue *q,char x) char dequeue(cirqueue *q) } //取队头元素。 char queuefront(cirqueue *q) return q->data[q->front]; #include <stdio.h> main() printf("入队a:/n"); printf("取队头:"); t=queuefront(&q); }
typedef struct
{
int front;//头指针
int rear;//尾指针
int count;//计数器,记录队中元素总数。
char data[100];
}cirqueue;
int queueempty(cirqueue *q);
int queuefull(cirqueue *q);
void enqueue(cirqueue *q,char x);
char dequeue(cirqueue *q);
char queuefront(cirqueue *q);
#endif
#include <malloc.h>
#include "dui.h"
{
q->rear=q->front=0;
q->count=0;
}
{
return q->count==0;
int queuefull(cirqueue *q)
{
return q->count==100;
}
{
//if(queuefull(q))
// printf("duiman");
//else
// {
q->count++;
q->data[q->rear]=x;
q->rear=(q->rear+1)%100;
//}
}
//出队
{
char temp;
//if(queueempty(q))
// { printf("duiman");
/// return 0;}
// else
// {
temp=q->data[q->front];
q->count--;
q->front=(q->front+1)%100;
return temp;
//}
{
}
#include "dui.h"
{
void initqueue(cirqueue *q);
int queueempty(cirqueue *q);
int queuefull(cirqueue *q);
void enqueue(cirqueue *q,char x);
char dequeue(cirqueue *q);
char queuefront(cirqueue *q);
cirqueue q;
char temp,t;
initqueue(&q);
printf("对是否为空? %s/n",queuefull(&q)? "bukong":"kong");
enqueue(&q,'a');
printf("入队b:/n");
enqueue(&q,'b');
printf("入队c:/n");
enqueue(&q,'c');
printf("入队d:/n");
enqueue(&q,'d');
printf("%c/n",t);
printf("出队:");
while(!queueempty(&q))
{
temp=dequeue(&q);
printf("%c/n",temp);
}
- 第三章:栈和队列
- 第三章 栈和队列
- 第三章:栈和队列
- 第三章栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章:栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- 第三章 栈和队列
- Java培训笔记二十一()
- 两个字符串模式匹配的算法
- IE版本的放大镜效果
- 硬盘安装XP,WIN7,UBUNTU3系统
- Hadoop架构和设计要点
- 第三章:栈和队列
- 請推薦一款流量統計工具
- ssh localhost 拒绝登录本地问题解决
- YCbCr与YUV的区别
- debian 下安装mrtg实例
- mysql中的表显示“使用中”解决办法!
- C++的运算符重载
- javascript怎么合并单元格内容
- mysql中的表显示“使用中”解决办法!