随笔分类 -  数据结构

摘要:大家都知道,栈是先进后出,队列是先进先出的。那么如何使用栈来完成队列的功能,又如何用队列完成栈的功能呢?一、两个栈实现队列 两个栈实现队列的方法就是将一个栈用来当作进入元素的入口,当要取出元素的时候,就将这个栈中的元素转入到另外一个栈中,由于先进后出,此时第二个栈中的元素顺序就和第一个栈中的元素顺序相反,这样就实现了一个队列的功能。具体流程如下: 1、将元素进栈 2、当需要先删除队头元素时,先检查stack2是否为空,如果为空,就将stack1中的元素转移至stack2中,否则直接删除stack2中的元素 然后删除元素4 当需要添加新元素5时,就将5添加到stack1中 ... 阅读全文
posted @ 2013-12-17 17:27 LOSER Z 阅读(2201) 评论(0) 推荐(3) 编辑
摘要:要实现从尾到头打印链表,方法很多,但常用的有两种方法,一是递归,二是利用栈。 首先定义一个链表: struct ListNode{ int m_nKey; //值 ListNode* m_pNext; //指向下一个值的指针} 第一种利用递归的方法: void PrintListReversingly_Recursively(ListNode* pHead){ if(pHead!=NULL) { //先判断链表是否为空 if(p_Head->m_pNext !=NULL) { //然后判断链表中只有一个元素 PrintList... 阅读全文
posted @ 2013-12-14 20:24 LOSER Z 阅读(319) 评论(0) 推荐(0) 编辑