C->C++过渡
文章平均质量分 77
顺序表,单链表的各种操作及面试题
snow_5288
三天不读书,智商输给猪
展开
-
【STL】list的应用模拟实现
STL:标准模板库,惠普实验室开发的一系列软件的统称。STL的六大组件:容器,迭代器,算法,适配器,空间配置器,仿函数。下面模拟序列式容器的一个列表:list(本质:带头结点的双向循环链表)。库中list的使用:#include #include #include using namespace std;//迭代器的使用void ListTest()原创 2016-12-04 22:58:32 · 6221 阅读 · 0 评论 -
【STL】C++模拟Vector容器
#include #include using namespace std;//类型萃取struct TrueType{ bool Get() { return true; }};struct FalseType{ bool Get() { return false; }};template struct TypeTraits{ typedef F原创 2016-12-09 16:50:00 · 5127 阅读 · 0 评论 -
C++模拟双向链表的基本操作
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。双(向)链表中有两条方向不同的链,即每个结点中除next域存放后继结点地址外,还增加一个指向其直接前趋的指针域pre。双向链表在查找时更方便 特别是大量数据的遍历原创 2016-10-21 12:32:52 · 3837 阅读 · 0 评论 -
C++实现动态顺序表
#includeusing namespace std;#include#define DataType intclass Seqlist { friend ostream& operator<<(ostream &_cout,const Seqlist& s);public: Seqlist(); Seqlist(DataType arr[],size_t size);原创 2016-10-20 22:57:23 · 3421 阅读 · 0 评论 -
将链表的所有奇数元素放于偶数元素前面
具体要求:头文件:#pragma once#include#include#includetypedef int DataType;typedef struct Node{ DataType data; struct Node *next;}*PNode,Node;void ParityRearrangement(PNode *pHead)原创 2016-09-22 23:30:40 · 3988 阅读 · 0 评论 -
单链表的逆置,排序,合并有序链表,不带环相交
PNode Reserse_LinkList(PNode *pHead);//逆置单链表void Bubbleort(PNode pHead);//冒泡排序PNode MergeOrder_LinkList(PNode pList1,PNode pList2);//合并两个有序链表,合并后仍有序int CheckCross(PNode pList1,PNode pList2);//判断链表是否相交PNode Cross(PNode pList1,PNode pList2);//求两个链表相交的交点原创 2016-09-17 19:34:17 · 1174 阅读 · 0 评论 -
链表中的带环相交问题
PNode CheckCircle(PNode pHead);//判断链表是否带环int GetCircleLength(PNode pMeetNode);//如果带环,求环的长度PNode GetInterNode(PNode pHead,PNode pMeetNode);//获取环的入口点int CheckCrossWithCircle(PNode pHead1,PNode pHead2);//判断链表是否相交(有可能带环)PNode UnionSet(Node *list1,Node *lis原创 2016-09-19 23:18:06 · 1198 阅读 · 0 评论 -
复杂链表的复制
什么是复杂链表?答:每个节点包含两个指针域(next.random)和一个数据域(data),其中next指向下一个节点,而random可指向链表的任意节点(包括它本身)甚至NULL。以下面的例子为例进行复制:代码实现:#include#include#includetypedef int DataType;typedef struct ComplexN原创 2016-09-20 14:03:36 · 659 阅读 · 0 评论 -
注释转换(C---->C++)
四种状态:测试代码:// 1.一般情况/* int i = 0; */// 2.换行问题/* int i = 0; */int j = 0;/* int i = 0; */int j = 0;// 3.匹配问题/*int i = 0;/*xxxxx*/// 4.多行注释问题/*int i=0;int j = 0;int k = 0;*/int k =原创 2016-05-25 15:25:15 · 1947 阅读 · 0 评论 -
(C语言)自拟顺序表的各种操作
总是要进步的。。。原创 2016-05-27 23:00:50 · 634 阅读 · 0 评论 -
(C语言)顺序表之动态实现
点击打开链接(静态实现版)头文件:#define _CRT_SECURE_NO_WARNINGS 1#ifndef _SEQLIST_H__#define _SEQLIST_H__#include#include#include#include#define MAX 2#define CHANGE_MAX 2typedef int TYPE;typedef stru原创 2016-06-01 18:36:38 · 1114 阅读 · 0 评论 -
单链表的基本操作
void Init_LinkList(PNode *pHead);//初始化PNode BuyNode(DataType data);//创建新节点void PushBack(PNode *pHead,DataType data);//尾插void PopBack(PNode *pHead);//尾删void PushFront(PNode *pHead,DataType data);//头插void PopFront(PNode *pHead);//头删PNode Find(PNode pHe原创 2016-09-13 12:31:54 · 1036 阅读 · 0 评论 -
链表面试题逆序打印,删除无头非尾节点,非头位置插入,约瑟夫环,查找中间和倒数第k个节点
PNode EndNode(PNode *pHead);//返回最后一个节点void ReversePrint(PNode pHead);//逆序打印链表void DeleteNotTail(PNode pos);//删除无头非尾节点void InsertNotHead(PNode *pHead,PNode pos,DataType data);//在链表的非头位置插入节点PNode JosephCircle(PNode *pHead,int m);//约瑟夫环PNode FindMidNode(原创 2016-09-15 20:16:59 · 6128 阅读 · 0 评论 -
通讯录(三)----文件实现
通讯录(一)-----静态实现 http://blog.csdn.net/snow_5288/article/details/51388708通讯录(二)-----静态实现 http://blog.csdn.net/snow_5288/article/details/51420133在以上两种方式中,每次运行程序我们都得重新输入,之前输原创 2016-05-20 18:40:12 · 2063 阅读 · 0 评论 -
通讯录(二)----动态实现
#include"contact.h"void menu()//打印菜单{ printf("***********************\n"); printf("1. 添加联系人信息\n"); printf("2. 删除指定联系人信息\n"); printf("3. 修改指定联系人信息\n"); printf("4. 查找指定联系原创 2016-05-15 23:18:45 · 1208 阅读 · 4 评论 -
竟然栽倒在这里!(通讯录一)
#define _CRT_SECURE_NO_WARNINGS 1#ifndef __CONTACT_H//防止重复引入#define __CONTACT_H__#include #include #includeenum OP//使用枚举,让switch语句更清晰明了{ EXIT, ADD, DEL, MODIFY, SEARCH, DISPLAY, SORT原创 2016-05-12 23:53:48 · 995 阅读 · 1 评论