设为首页 加入收藏

TOP

利用栈实现队列(C语言实现)(四)
2014-07-19 22:53:07 来源: 作者: 【 】 浏览:192
Tags:利用 实现 队列 语言

 

  //尾加

  int SPQueue_Append(SPQueue* queue, void* item)

  {

  TSPQueue* SPQueue = (TSPQueue*)queue;

  int ret = 0;

  if (NULL != SPQueue)

  {

  ret = LinkStack_Push(SPQueue->instack,item);

  }

  return ret;

  }

  //删除头部

  void* SPQueue_Retrieve(SPQueue* queue)

  {

  TSPQueue* SPQueue = (TSPQueue*)queue;

  void * ret = NULL;

  if (NULL != SPQueue)

  {

  //当outstack长度为0时,把instack中的数据移入outstack

  if (LinkStack_Size(SPQueue->outstack) == 0)

  {

  while (LinkStack_Size(SPQueue->instack) > 0)

  {

  LinkStack_Push(SPQueue->outstack,LinkStack_Pop(SPQueue->instack));

  }

  }

  //取出outstack的栈顶

  ret = LinkStack_Pop(SPQueue->outstack);

  }

  return ret ;

  }

  //获得头部

  void* SPQueue_Header(SPQueue* queue)

  {

  TSPQueue* SPQueue = (TSPQueue*)queue;

  void * ret = NULL;

  if (NULL != SPQueue)

  {

  if (LinkStack_Size(SPQueue->outstack) == 0)

  {

  while (LinkStack_Size(SPQueue->instack) > 0)

  {

  LinkStack_Push(SPQueue->outstack,LinkStack_Pop(SPQueue->instack));

  }

  }

  ret = LinkStack_Top(SPQueue->outstack);

  }

  return ret ;

  }

  //长度

  int SPQueue_Length(SPQueue* queue)

  {

  TSPQueue* SPQueue = (TSPQueue*)queue;

  int ret = 0;

  if (NULL != SPQueue)

  {

  ret = LinkStack_Size(SPQueue->instack) + LinkStack_Size(SPQueue->outstack);

  }

  return ret;

  }

  运行结果:

  第一次进队列:Header: 1

  Length: 10

  1       出队列了

  2       出队列了

  3       出队列了

  4       出队列了

  5       出队列了

  第二次进队列:

  Header: 6

  Length: 5

  6       出队列了

  7       出队列了

  8       出队列了

  9       出队列了

  10      出队列了

  1       出队列了

  2       出队列了

  3       出队列了

  4       出队列了

  5       出队列了

  6       出队列了

  7       出队列了

  8       出队列了

  9       出队列了

  10      出队列了

  请按任意键继续。 . .

  如有错误,望不吝指出。

      

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇程序的栈区(stack)堆区(heap) 下一篇浅谈常量指针与指针常量

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)
·每日一道面试题-多线 (2025-12-26 06:20:17)
·java项目中哪些地方 (2025-12-26 06:20:14)