array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 《数据结构》C++代码 线性表 - 爱码网

       线性表,分数组和链表两种(官方名称记得是叫顺序存储和链式存储)。代码里天天用,简单写写。

       首先是数组,分静态、动态两种,没什么可说的,注意动态的要手动释放内存就好了。

       其次是链表,依旧分静态、动态。课内一般都是讲的是动态实现,但其实还有一种静态实现方法。动态实现剩内存,但是静态实现剩时间,考试的时候当然是要视情况而定的。但是我估计,课内考试应该不会去卡这个时间,所以大家应该是不用担心(仅仅是个人看法,真被数据卡了别找我……)。

       特别说明,静态链表实现,应当在开始申请够足够的内存,大家尽量在没有内存大量复用的时候使用。举个例子,比如链表里同时最多存在10000个数,但却随着过程中不断的添删,总共会有1000000000个数,那么显然应当重复使用10000个内存才对。于是,我们静态实现的话,便要自己管理内存,这简直是太麻烦了……而且会大大增加程序运行时间,还不如直接使用动态实现呢。

       没啥可说的,代码很短,看了自然就懂了。没啥题目,就是简单写两句,直接上代码:

代码中给出如下定义:

1 const int maxn = 100;
2 int N; cin>>N; // 以N个数的线性表为例

 

数组实现:

1 int A[maxn+1]; // 数组 静态实现
2 
3 int *A=new int[maxn+1]; // 数组 动态实现
4 delete[] A;
5 
6 A[i]=3; // 使用方法相同

 

链表结点定义:

 1 struct node // 链表结点定义 以双向链表为例
 2 {
 3     int c;
 4     node *l,*r;
 5     node(int _c=0) { c=_c; l=r=0; }
 6     node* born(node *u) // 在this右侧插入点u
 7     {
 8         node *v=r; // 由于在this右侧插入,故this!=B,v!=0
 9         u->r=v; if(v) v->l=u; // 但开始的时候,A born B时会产生v==0的状态
10         u->l=this; r=u;
11         return u;
12     }
13     void del() // 删除this右侧点
14     {
15         node *u=r,*v=r->r; // 由于u右侧应有点,故u->r!=B,即v!=B
16         r=v; if(v) v->l=this; // 这里可以不用if(v),因为就算删最后一个点,v也是B,不会不存在
17         delete u; // 静态实现的时候,无需删除,也无法删除,此句省去即可
18     }
19 };

 

 

动态链表:

 1 class List // 链表 动态实现
 2 {
 3     node *A,*B;
 4 public:
 5     node* add(int c=0) { return A->born(new node(c)); }
 6     void del(int c)
 7     {
 8         for(node *p=A;p->r!=B;p=p->r)
 9             if(p->r->c==c) { p->del(); break; }
10     }
11     void look() { for(node *p=A->r;p!=B;p=p->r) cout<<p->c<<" "; }
12     void clear() { while(A->r!=B) A->del(); }
13     
14     List(int N=0)
15     {
16         A=new node; B=add(); // 设置2个空结点,一头一尾,比较对称,不过多一个点,看个人习惯。这时,A->r==B是链表空的判断标准。
17         for(int x,i=1;i<=N;++i) { cin>>x; add(x); }
18     }
19     ~List() { clear(); }
20 };

 

 

静态链表:

 1 class List // 链表 静态实现
 2 {
 3     int L;
 4     node Box[maxn],*A,*B;
 5     node* make(int c=0) { Box[L].c=c; return &Box[L++]; } // 使用时,仅仅是将new node换成make就好了
 6 public:
 7     node* add(int c=0) { return A->born(make(c)); }
 8     void del(int c)
 9     {
10         for(node *p=A;p->r!=B;p=p->r)
11             if(p->r->c==c) { p->del(); break; }
12     }
13     void look() { for(node *p=A->r;p!=B;p=p->r) cout<<p->c<<" "; }
14     void clear() { A->r=B; B->l=A; }
15     
16     List(int N=0)
17     {
18         A=make(); B=add();
19         for(int x,i=1;i<=N;++i) { cin>>x; add(x); }
20     }
21     ~List() { clear(); }
22 };

相关文章: