
数据结构-链表、栈、队列
朗润
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1、从尾到头打印链表
分析:ke #include #include const 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 · 278 阅读 · 0 评论 -
设计栈结构构造min()函数,也就是求栈中元素的最小值,要求pop、push、min时间复杂度为O(1)
原创 2014-08-14 16:54:06 · 648 阅读 · 1 评论 -
两个栈实现队列的功能
分析:设置两个栈s1、s2,一开始均为空。原创 2014-08-14 15:16:17 · 315 阅读 · 0 评论 -
2、单链表的反转
分析:使用中间结点实现的s #include #include const int MaxSize = 101; using namespace std; typedef struct ListNode{ int data; struct ListNode *next; }ListNode; void ListNodeReserve(ListNod原创 2014-08-13 16:09:48 · 303 阅读 · 0 评论 -
5、判断一个单链表是否有回环
定义两个指针,一个每次前进两个节点,一个前进一个,如果慢的能追上快的就有环。就好比跑步,一个跑的快,一个跑的慢,如果跑道是环状的,跑的快就会把跑的慢的扣圈了,如果跑到无环,那么就不会扣圈现象产生,就是这个道理。原创 2014-08-12 20:31:00 · 1432 阅读 · 0 评论 -
6、给单链表建环
/*给单链表建环,让尾指针指向第num个结点*/ #include #include const int MaxSize = 101; using namespace std; typedef struct ListNode{ int data; struct ListNode *next; }ListNode; void BuiltLoopLi原创 2014-08-13 14:46:52 · 352 阅读 · 0 评论 -
4、删除单链表的倒数第m个元素
#include #include const 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 · 387 阅读 · 0 评论 -
3、找出单链表的中间元素
/* 两个人赛跑,如果A速度是B的2倍,那么,当A到达终点的时候,B刚好到中间位置*/ 注:yansh #include #include const int MaxSize = 101; using namespace std; typedef struct ListNode{ int data; struct ListNode *next; }原创 2014-08-13 16:20:05 · 1316 阅读 · 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 · 531 阅读 · 0 评论 -
7、判断两个单链表是否相交
思路 1)、遍历其中一个单链表1,使其tail指向其head. 也就是构造回环。 2)、设置两个指针,分别从两个单链表的头指针开始遍历,一个指针前进一步,另外一个指针前进两步。 3)、如果两个指针相遇,则两个单链表相交;如果到单链表2的尾结点都没有相遇,则两个单链表不想交。原创 2014-08-13 15:08:46 · 367 阅读 · 0 评论