![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2010数据结构学习笔记
文章平均质量分 82
飝鱼
作为一个新新入门者我期待能和大家多多交流
展开
-
学习 3.3.3静态链表
用结构数组表示链表,存储位置连续但各元素逻辑关系不连续 一般结构: struct slink { int data; int next; } 用起来好像不如动态链表方便。。。。。 静态链表的删除: #include"stdio.h" #include"stdlib.h" #define N 100 struct slink { int data; i原创 2010-01-16 16:11:00 · 587 阅读 · 0 评论 -
昨晚看了点书上的查找和排序算法
拆半查找法:好像与数学上求根的二分法类似,利用mid不断逼近查找值,O(LogN)。 顺序查找法:书上给出了三种不同优化的算法,恩,重要的思想是使用了监视哨,是查找对应值和判断数组是否越界合为一体,节约了时间。 冒泡排序法:每一趟比较就把最小的数字移到数组最后。 直接插入排序法:从数组最后开始,依次把元素插入一个有序数列中。好像在最坏情况下时间复杂度比冒泡低一点。。。 //拆半查找法(从数原创 2010-01-06 16:56:00 · 846 阅读 · 0 评论 -
学习 3.3.7双向链表
双向链表较单项链表更灵活,对第i个前插入和第i个删除操作时不用把遍历指针指到i-1,指到i也可。 现在暂时看不出双向比单向有较为突出的优势,就链表的基本操作来说,单项链表更方便! 双向链表的建立算法(self-built).cpp #include"stdio.h" #include"stdlib.h" struct dulnode { struct dulnode *pr原创 2010-01-16 20:47:00 · 719 阅读 · 0 评论 -
最近在看数据结构,第二章有点头大了
第二章用bih-oh法分析时间复杂度,很多都搞不懂啊,拆半查找法的O(LogN)就不明白是怎么来的。。。 算了,直接跳过看顺序储存结构了原创 2010-01-06 17:45:00 · 560 阅读 · 0 评论 -
学习 3.3.5单循环链表
把单链表弯成环形,首尾相接。 关键:判断是否到表尾,遍历指针是否指向头结点 (单链表:遍历指针是否为NULL) 优点:从任意节点出发可以访问任一节点。 拓扑学上的优点:解决类似约瑟夫问题。 单循环链表的建立算法(self-built).cpp #include"stdio.h" #include"stdlib.h" struct ci原创 2010-01-16 19:14:00 · 1160 阅读 · 0 评论 -
学习 3.4.1约瑟夫问题
约瑟夫问题的来历 这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。 书上的问题:设有n个人坐在圆桌周围原创 2010-01-16 22:41:00 · 1462 阅读 · 0 评论 -
今天学习:3.3线性表的链式存储
3.3.1:线性链表 A.链表初始化: B.建立单链表: 3.3.2:线性链表的运算 单链表的查找: C.查找是否存在第i个节点 D.按值查找链表 单链表的插入: E.前插 F.后插 G.单链表的删除: H.单链表的逆序: 结构1:head头指针->头结点原创 2010-01-10 23:16:00 · 643 阅读 · 1 评论 -
前不久刚做完的习题:学生管理系统(偷懒的极度简化版)
实验书上的第一个习题:学生管理系统(我自己定的:有学号,姓名,性别,年龄)。主要练习链表操作,总结了一下:单向链表的基本操作主要有:初始化,插入,删除,查找,排序,储存,读入,分割,合并,后两个在这个题中就没有必要了。 很萎的分了一下模块,其实是大部分函数是在一个cpp中写完再把他分到其他cpp文件中的~~~ 程序主要有几个功能:也就是上面的插入,删除,查找,排序,储存,读入,原创 2010-01-06 17:13:00 · 925 阅读 · 1 评论