07 2018 档案

摘要:struct LinkNode { int data; LinkNode* next; }; LinkNode* minus_LinkList(LinkNode* A, LinkNode* B) { LinkNode* finalA = A; LinkNode* tempA = A->next; L 阅读全文
posted @ 2018-07-28 18:01 三儿啊 阅读(269) 评论(0) 推荐(0)
摘要:假设序列长为n,中位数就是长度在n/2的数。 法一:可以先将两个序列合并然后再去找2n/2位置,并返回该位置的数。(有这个想法就可以的到法二) 法二;:由于两个序列都是升序,所以,直接计数n,升序排列前n个数就可以了 法三:用减治法: 分别求出序列A 和B 的中位数,设为a 和b,求序列A 和B 的 阅读全文
posted @ 2018-07-28 16:55 三儿啊 阅读(1751) 评论(0) 推荐(1)
摘要:实现问题:单链表L中,已知结点P,需要在P结点之前插入结点S。 实现方法:先将S结点插入到P结点的后面,然后在实现数值的交换 有头结点的优势:插入和删除元素就统一了,不需要判断是否是在第一个元素进行插入删除操作。林外,不论链表是否为空,链表指针都不变 阅读全文
posted @ 2018-07-27 17:58 三儿啊 阅读(150) 评论(0) 推荐(0)
摘要:1、链式存储结构,数据之间的关系是通过指针体现的 2、静态链表和动态链表的区别: 静态链表和动态链表是线性表链式存储结构的两种不同的表示方式。 静态链表是用类似于数组方法实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配地址空间大小。所以静态链表的初始长度一般是固定的,在做插入和删除操 阅读全文
posted @ 2018-07-26 19:20 三儿啊 阅读(296) 评论(0) 推荐(0)
摘要:free的实现原理: 操作系统在调用malloc函数时,会默认在malloc分配的物理内存前面分配一个数据结构,这个数据结构记录了这次分配内存的大小,在用户眼中这个操作是透明的。 那么当用户需要free时,free函数会把指针退回到这个结构体中,找到该内存的大小,这样就可以正确的释放内存了。 通过这 阅读全文
posted @ 2018-07-25 15:46 三儿啊 阅读(4419) 评论(0) 推荐(0)
摘要:有一个数组r,里面是n个随机排列整数,找到里面的众数,如果该众数的重数大于n/2,则该数为这个数组的主元素 如果按照众数的计算方法,需要先给数组排序。然后再遍历每个元素,得到众数和重数,再来判断重数与n/2的关系。以下为排完序之后找众数的算法。 解法二:依次扫描所给数组的每个整数,将第一个遇到的整数 阅读全文
posted @ 2018-07-20 17:20 三儿啊 阅读(255) 评论(0) 推荐(0)
摘要:1/realloc(p,sizeof(int)*n)//给一个已经分配了地址的指针重新分配空间,参数p为原有的空间地址 2、malloc(n*sizeof(int))//请求n个连续的每个长度为整型的空间,若成功返回这个空间的首地址,失败返回0 阅读全文
posted @ 2018-07-19 18:56 三儿啊 阅读(187) 评论(0) 推荐(0)
摘要:1、每种数据结构都具有插入、删除和查找三种基本运算,这种说法并不正确。 一般而言,并不是所有的数据结构都有这三种基本运算。 比如多维数组,就没有插入和删除,可以看看,哪怕是二维数组,如果删除其中某个元素,用行还是列来顶替,顶替后,二维数组不就出现缺口了。 再比如说栈和队列,一般并不需要查找(其实原则 阅读全文
posted @ 2018-07-18 17:23 三儿啊 阅读(803) 评论(0) 推荐(0)
摘要:1、循环队列实现方式是单链表 是物理(存储)结构 2、广义表和数组是线性结构还是非线性结构? (来自百度词条)广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。它被广泛的应用于人工智能等领域的表处理语言LISP语言中。 阅读全文
posted @ 2018-07-17 19:04 三儿啊 阅读(178) 评论(0) 推荐(0)