![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
zhangsan_3
这个作者很懒,什么都没留下…
展开
-
数组和链表区别
数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。如果应用需要快速访问数据,很少或不插入和删除元素,就应该用数组。链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。但是增加和删除一个元素对于链表数据结构就只要修改元素中的指针就可以了。如果应用需要经常插入和删除元素你就需要用链表数据结构了。原创 2016-12-07 21:16:34 · 256 阅读 · 0 评论 -
斐波拉契(Fibonacci)数列
斐波拉契数列一般指斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,676原创 2016-11-27 10:25:52 · 1237 阅读 · 0 评论 -
为什么用函数指针
一般的时候用不到,主要还是一个简化结构和程序通用性的问题,也是实现面向对象编程的一种途径。简单的总结为:1. 实现面向对象编程中的多态性2. 回调函数举两个例子:1. 你现在要实现一个文件系统,但是文件的介质有硬盘和软盘,那么它们各自的读写函数实现肯定是不一样的。好比 int a_write(char *data_stream, int LBA转载 2016-12-09 10:19:22 · 1000 阅读 · 0 评论 -
打擂法求最大或最小值
打擂法求最大值***谁最大、小,谁保留***代码:#include int main(int argc, const char *argv[]){int a[] = {2,3,4,54,67,34,9},i,max,pos,n;n = sizeof(a) / sizeof(int); max = a[0];for(i = 0;i {原创 2016-11-27 15:34:57 · 9462 阅读 · 0 评论 -
冒泡排序法
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。排序原理(1)比较第一个数与第二个数,若为逆序a[0]>a[1原创 2016-11-27 15:22:22 · 810 阅读 · 0 评论 -
链表翻转/逆序
// 链表翻转// 整个过程即:对开始为第一个的元素(固定,地址不变)之后的元素 断链、头插的过程;void list_reversal1(linknode *H) // 从第二个元素(第三个节点)开始,依次头插 {linknode *p = H->next,*q = NULL; // p-开始时第一个元素的地址 , q- p下一个元素的地址whi原创 2017-03-17 13:45:21 · 319 阅读 · 0 评论