![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构-链表、栈、队列
朗润
这个作者很懒,什么都没留下…
展开
-
1、从尾到头打印链表
分析:ke#include#includeconst int MaxSize = 101;using namespace std;typedef struct ListNode{ int data; struct ListNode *next;}ListNode;void ListNodeReserve(ListNode *L){原创 2014-08-13 16:08:11 · 242 阅读 · 0 评论 -
设计栈结构构造min()函数,也就是求栈中元素的最小值,要求pop、push、min时间复杂度为O(1)
原创 2014-08-14 16:54:06 · 567 阅读 · 1 评论 -
两个栈实现队列的功能
分析:设置两个栈s1、s2,一开始均为空。原创 2014-08-14 15:16:17 · 273 阅读 · 0 评论 -
2、单链表的反转
分析:使用中间结点实现的s#include#includeconst int MaxSize = 101;using namespace std;typedef struct ListNode{ int data; struct ListNode *next;}ListNode;void ListNodeReserve(ListNod原创 2014-08-13 16:09:48 · 258 阅读 · 0 评论 -
5、判断一个单链表是否有回环
定义两个指针,一个每次前进两个节点,一个前进一个,如果慢的能追上快的就有环。就好比跑步,一个跑的快,一个跑的慢,如果跑道是环状的,跑的快就会把跑的慢的扣圈了,如果跑到无环,那么就不会扣圈现象产生,就是这个道理。原创 2014-08-12 20:31:00 · 1370 阅读 · 0 评论 -
6、给单链表建环
/*给单链表建环,让尾指针指向第num个结点*/#include#includeconst int MaxSize = 101;using namespace std;typedef struct ListNode{ int data; struct ListNode *next;}ListNode;void BuiltLoopLi原创 2014-08-13 14:46:52 · 314 阅读 · 0 评论 -
4、删除单链表的倒数第m个元素
#include#includeconst int MaxSize = 101;using namespace std;typedef struct ListNode{ int data; struct ListNode *next;}ListNode;void DeleteMList(ListNode *L,int m){原创 2014-08-13 16:48:35 · 351 阅读 · 0 评论 -
3、找出单链表的中间元素
/* 两个人赛跑,如果A速度是B的2倍,那么,当A到达终点的时候,B刚好到中间位置*/注:yansh#include#includeconst int MaxSize = 101;using namespace std;typedef struct ListNode{ int data; struct ListNode *next;}原创 2014-08-13 16:20:05 · 1264 阅读 · 0 评论 -
8、一个单链表,不给头指针,只给出当前结点,删除该结点。
void DelCur(ListNode *pCur){ ListNode *pNext; pNext = pCur->next; pCur->data = pNext->data; pCur->next = pNext->next; free(pNext);}原创 2014-08-13 15:44:22 · 475 阅读 · 0 评论 -
7、判断两个单链表是否相交
思路 1)、遍历其中一个单链表1,使其tail指向其head. 也就是构造回环。 2)、设置两个指针,分别从两个单链表的头指针开始遍历,一个指针前进一步,另外一个指针前进两步。 3)、如果两个指针相遇,则两个单链表相交;如果到单链表2的尾结点都没有相遇,则两个单链表不想交。原创 2014-08-13 15:08:46 · 335 阅读 · 0 评论