再回首,数据结构——链队列上的其它一些算法
2015-05-28 11:16
323 查看
最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。
希望这些能提供给初学者一些参考。
//将链队列 q 中的正整数、零和负整数分别存放在两条不同的链队列q1,q2中
//并且q1,q2中的值要求保持原来的顺序。
int Splitting (LinkQueue q, LinkQueue *q1, LinkQueue *q2)
{
while (!QueueEmpty(q))
{
x = DeleteQueue(&q);
if (x > 0)
AddQueue(q1, x);
else
AddQueue(q2, x);
}
}
/*n条循环队列构成一组,用一个数组存放该队列组中每条队列的头指针和尾指针
功能:求i队列的长度 i队列首元素出队列 */
#define MaxSize N
typedef struct
{
ElementType Queue
[MaxSize]; //n条循环队列
int Position
[2]; //循环队列的队首队尾指示器
}GroQueue;
/*求i队列的长度*/
int QueueLength (GroQueue gq, int i)
{
if (i >= n || i < 0)
{
printf("Error!");
return -1;
}
return ((gq.Position[i][1]-gq.Position[i][0]+MaxSize)%MaxSize);
}
/*i队列首元素出队列*/
ElementType DeleteQueue (GroQueue *gq, int i)
{
if (i >= n || i < 0)
{
printf("Error!");
return nil;
}
if (gq->Position[i][0] == gq->Position[i][i]) //队列满
return nil;
else
{
e = gq->Queue[(gq.Position[i][0]+1)%MaxSize];
gq.Position[i][0] = (gq.Position[i][0]+1)%MaxSize;
return e;
}
}
希望这些能提供给初学者一些参考。
//将链队列 q 中的正整数、零和负整数分别存放在两条不同的链队列q1,q2中
//并且q1,q2中的值要求保持原来的顺序。
int Splitting (LinkQueue q, LinkQueue *q1, LinkQueue *q2)
{
while (!QueueEmpty(q))
{
x = DeleteQueue(&q);
if (x > 0)
AddQueue(q1, x);
else
AddQueue(q2, x);
}
}
/*n条循环队列构成一组,用一个数组存放该队列组中每条队列的头指针和尾指针
功能:求i队列的长度 i队列首元素出队列 */
#define MaxSize N
typedef struct
{
ElementType Queue
[MaxSize]; //n条循环队列
int Position
[2]; //循环队列的队首队尾指示器
}GroQueue;
/*求i队列的长度*/
int QueueLength (GroQueue gq, int i)
{
if (i >= n || i < 0)
{
printf("Error!");
return -1;
}
return ((gq.Position[i][1]-gq.Position[i][0]+MaxSize)%MaxSize);
}
/*i队列首元素出队列*/
ElementType DeleteQueue (GroQueue *gq, int i)
{
if (i >= n || i < 0)
{
printf("Error!");
return nil;
}
if (gq->Position[i][0] == gq->Position[i][i]) //队列满
return nil;
else
{
e = gq->Queue[(gq.Position[i][0]+1)%MaxSize];
gq.Position[i][0] = (gq.Position[i][0]+1)%MaxSize;
return e;
}
}
相关文章推荐
- 再回首,数据结构——链栈的其它一些操作和应用
- 第六周--数据结构之自建算法库之迷宫问题(用队列)
- 【数据结构与算法学习笔记】PART3 线性结构(除向量外,数组、栈、队列、链表)
- 数据结构与算法02 之栈与队列
- 数据结构1:栈、队列、优先队列相关的算法题
- Java数据结构与算法解析——优先级队列
- 数据结构与算法 ----- 队列
- 4.[数据结构和算法分析笔记]队列 Queue
- 数据结构与算法JavaScript - 队列
- 优先队列的实现 Java数据结构与算法
- 数据结构-单链队列相关操作算法
- 数据结构之顺序队列和链式队列常用的一些操作
- [翻译]C#数据结构与算法 – 第五章栈与队列(Part 1)
- 第六周--数据结构之自建算法库之链式队列
- 数据结构与算法01--堆栈 & 队列
- 【算法学习笔记】06.数据结构基础 队列与堆栈初步
- 数据结构与算法--队列
- 再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)
- 数据结构与算法-队列
- JavaScript中数据结构与算法(二):队列