设为首页 加入收藏

TOP

利用栈实现队列(C语言实现)(三)
2014-07-19 22:53:07 来源: 作者: 【 】 浏览:193
Tags:利用 实现 队列 语言
利用栈实现队列(<a href=http://www.cppentry.com/list.php?fid-45-page-1.htm style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C语言</a>实现)_<a href=http://www.cppentry.com/list.php?fid-45-page-1.htm style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C语言</a>教程_<a href=http://www.cppentry.com style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C++</a>教程_C语言培训_<a href=http://www.cppentry.com style=text-decoration:underline;font-size:14px;color:#F70968; target=_blank>C++</a>教程培训_C/C++频道_中国IT实验室
中国IT实验室C/C++频道
首页资讯动态C语言C++编程C∕C++开发应用VC++C++Builder专题下载博客论坛
您现在的位置: 中国IT实验室 >> C∕C++频道 >> C语言 >> 基础入门 >> 正文

利用栈实现队列(C语言实现)

 

  //尾加

  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] 

【责编:ivy】

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 社区讨论
 博客论点
首页 上一页 1 2 3 4 下一页 尾页 3/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)