数据结构
强强强子
正在奋斗学习的程序猿
展开
-
时间复杂度与空间复杂度详解
1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。(2)时间复杂度原创 2015-08-31 09:58:11 · 1267 阅读 · 0 评论 -
重新认识链表(单向链表并遍历)
接触了数据结构 发现无非就是 数据的存储问题和解决办法那么就是 线性和非线性最基础的就是 线性表(数组和链表) 不得不又重新 拾起 C语言,也是我比较头痛的 指针问题。C语言实训的时候 接触到链表 当时并没有 很好的理解他 只是死记了他的结构模式和语法 。今天十几分钟的复习 突然感受到了 他的逻辑思想 还是很高兴的 下面是一个简单的 循环单链表 。希望能够尽原创 2015-08-31 19:56:53 · 1652 阅读 · 0 评论 -
链表头插法编程实现
头插法思想就是建立一个头结点,自己指向自己,然后新来一个结点,就让这个新结点指向头结点所指向的结点,然后让头结点指向新来的结点。这样把新结点永远插到头结点之后就是头插法了。C语言编程实现#include#includestruct list { int a; struct list * next;} ; struct list * head;st原创 2015-09-28 16:23:57 · 3109 阅读 · 0 评论 -
将两个非递减的有序链表合并为一个非递增的有序链表
将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中允许有重复的数据。void MergeList(LinkList& La, LinkList& Lb, LinkList& Lc, ) {//合并链表La和Lb,合并后的新表使用头指针Lc指向 pa=La->next; pb=Lb->next; //pa和p原创 2015-10-11 12:34:36 · 24577 阅读 · 6 评论 -
将两个递增的有序链表合并为一个递增的有序链表
将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc){//合并链表La和Lb,合并后的新表使用头指针Lc指向 pa=La->next; pb=Lb->next; //pa和p原创 2015-10-11 12:29:40 · 37842 阅读 · 10 评论 -
将两个非递减的有序链表合并为一个非递增的有序链表(C语言编程实现)
将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中允许有重复的数据。#include#include typedef struct list { int data; struct list * next; //下一个节点地址 }list; //第一条链表 struct li原创 2015-10-11 16:46:32 · 21497 阅读 · 2 评论 -
线性表之单链表 图解和代码实现
线性表的链接存储结构---单链表图解: LinkList.h文件 [cpp] view plaincopy//LinkList.h 声明类LinkList #ifndef LinkList_H #define LinkList_H转载 2015-08-31 20:02:11 · 2029 阅读 · 0 评论 -
将两个递增的有序链表合并为一个递增的有序链表(C语言编程实现)
将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。#include#include typedef struct list { int data; struct list * next; //下一个节点地址 }list; //第一条链表 struct list原创 2015-10-11 15:30:29 · 46008 阅读 · 3 评论