数据结构之串笔记
来源:互联网 发布:为什么喜欢生物 知乎 编辑:程序博客网 时间:2024/06/06 09:40
//顺序队列的类型定义如下:
#define maxsize 1024
typedef struct
{
int data[maxsize];
int rear,front;
}sequeue;
//定义一个指向队列的指针变量sequeue *q
//申请顺序队列的存储空间q=(sequeue*)malloc(sizeof(sequeue));
//空队时q->rear=q->front=-1;
//入队列q->rear++;q->data[q->rear]=x;
//出队列q->front++;x=q->data[q->front];//队头指针指向的是队头元素的前面一个位置,就是队头指针没有指向第一个队头元素,但是队尾指针指向的是最后一个队列尾元素,从这一点来看队列头指针与队列尾指针是有点不同的
//队列中元素个数m=(q-<rear)-(q->front);
//队列就是队列头部出去元素,队列尾部进入元素
//顺序队列会有假溢出的情况,那么构建循环队列就是非常必要的了
typedef struct
{
int data[maxsize];
int front,rear;
int num;//队列中间元素的个数
}csequeue;//循环队列的定义
csqueue *init_sequeue()
{
q=(csequeue*)malloc(sizeof(csequeue));//为q队列申请存储空间
q->rear=q->front=maxsize-1;
q->num=0;
return q;
}//构建空的循环队列
int in_sequeue(csequeue *q,int x)
{
if(q->num==maxsize-1)
{
printf("队满\n");
return -1;
}
else
{
q->rear=(q->rear+1)%maxsize;
q->data[q->rear]=x;
q->num++;
return 1;
}
}//入循环队列
int out_sequeue(csequeue *q,int *x)
{
if(q->num==0)
{
printf("队空\n");
return -1;
}
else
{
q->front=(q->front+1)%maxsize;
*x=q->data[q->front];
q->num--;
return 1;
}
}//出循环队列
int empty_sequeue(csequeue *q)
{
if(q->num==0)
return 1;
else
return 0;
}//判断循环队列是不是空
//////////////////////////////////////////////////////////
typedef struct
{
int data;
struct node *next;
}qnode;//单链表按照队列的操作来的话就是链队列
typedef struct
{
qnode *front,*rear;
}lqueue;//把指向链队列的头指针与尾指针封装在一起
//定义指向链队的指针lqueue *q
lqueue *init_lqueeu()
{
lqueue *q;//定义头尾指针的封装结点
qnode *p;//定义链队列的头结点
q=(lqueue*)malloc(sizeof(lqueue));//申请存储空间
p=(qnode*)malloc(sizeof(lqueue));//同上
p->next=NULL;
q->front=p;
q->rear=p;
return p;
}//置一个空链队列
void in_lqueue(lqueue *q,int x)
{
qnode *p;
p=(qnode*)malloc(sizeof(qnode));
p->data=x;
p->next=null;
q->rear->next=p;
q->rear=p;
}//链队列入队列
int out_lqueue(lqueue *q,int *x)
{
qnode *p;
if(empty_lqueue(q))
{
printf("队列空\n");
return 0;
}
else
{
p=q->front->next;
q-front->next=p->next;
*x=p->data;
free(p);
if(q->front->next==NULL)
{
q->rear=q->front;
return 1;
}
}
}//链队出队列算法
- 数据结构之串笔记
- 【数据结构】学习数据结构的学习笔记之串
- 《大话数据结构》笔记之 第五章 串
- 数据结构笔记之二链表
- 数据结构笔记之查找
- 数据结构笔记之----查找
- 数据结构笔记之栈
- 数据结构笔记之绪论
- 数据结构之数组 笔记
- 《数据结构》笔记之绪论
- 25、数据结构笔记之二十五串应用之文本编辑
- 《大话数据结构》笔记之 第一章 数据结构绪论
- 数据结构与算法学习笔记之--数据结构
- 《大话数据结构》之算法笔记
- 数据结构笔记之查找算法
- 数据结构笔记之查找算法
- 数据结构随手笔记之哈希表
- 数据结构学习笔记之堆栈
- 20171121 自省
- bzoj 1013 高斯消元
- 深度学习——数学基础
- 使用MS Test做单元测试
- 推荐!手把手教你使用Git
- 数据结构之串笔记
- 协作更进一步:微软隆重介绍Visual Studio动态分享功能
- SOA对微服务的残余影响
- 我心中的ASP.NET Core 新核心对象WebHost(二)
- centos7下修改主机名
- Flume系列二之案例实战
- Linux下安装nginx
- 指向函数的指针 ------ 函数指针(function pointer)
- .js文件中的下划线