数据结构与算法之—数组(一)
2012-07-22 12:15
369 查看
使用csdn已经2年多了,一直想在上面写点东西,确一直没有实施,在学校的时候,在业余的时候自己总会写点小程序,小算法什么的,由于工作后时间不充裕,有时间也想休息,出了工作的时候写点代码,回家基本不太想动,最近工作不是太忙,想自己写的感兴趣的东西。
由于自己在毕业之前自己平时写过较多的数据结构的东西,后来发现在找工作的时候还很有用,虽然在工作上,因为要提高效率的原因,很多的数据结构和算法都被一些封装好的数据结构和一些现成的算法所取代,但自己还是在时间可控的情况下,自己实现自己的数据结构和算法,很少去使用现成的库和算法,这也使得自己有时间在解决一些问题的时候会有些较好的想法。
对于一个合格的程序员来说,掌握好基本的数据结构和算法是十分有必要的,很好的掌握好这些,在你处理一些问题的时候,有时候会有很大的帮助的。
自己就从数据结构上的教材内容开始吧。
首先就是数组的操作,数组估计是我们平时用的最多的数据结构了,他的功能和性能都是很强大的,大家用起来也是最爽的,现在就来写几个数据的几个操作和算法吧
1.数组的插入
2.数组的删除
这里没有考虑动态内存分配的情况,只考虑在预留空间范围的操作,实际上这种也是比较有用的,可以事先分配合适的空间,在运行时不再分配空间,可以在有些实际开发中提高程序的稳定性和安全性,以及降低动态内存分配的开销,降低内存碎片。
#include<iostream> using namespace std; template<class T> bool insert(int p, T value, T a[], int size) { if(p < 0 || p > size) { return false; } for(int n = size; n >= p; n--) { a = a[n-1]; } a[p] = value; return true; } template<class T> bool del_element(int p, T a[], int size) { if(p < 0 || p >= size) { return false; } for(int n = p; n < size-1; n++) { a = a[n+1]; } return true; } int main() { int a[10] = {0}; for(int i = 0; i < 5; i++) { a[i] = i; } insert(0, -1, a, 5); del_element(0, a, 6); for(int j = 0; j < 8; j++) { cout<<a[j]<<endl; } return 0; }
相关文章推荐
- 【数据结构与算法】(一) c 语言实现数组的简单操作
- 【数据结构与算法01】数组
- 算法(第四版) 能够动态调整数组大小的队列数据结构
- 数据结构与算法-----堆栈-使用数组(顺序结构)实现
- 再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)
- 1.[数据结构和算法分析笔记]数组
- JAVA数据结构与算法-第二章-数组
- 【数据结构与算法的语言基础】数组与字符串
- JavaScript数据结构与算法Item1--数组
- 数据结构与算法-----队列-使用数组(顺序结构)实现
- 数据结构和算法 (二)数据结构基础、线性表、栈和队列、数组和字符串
- [数据结构与算法] : 栈的数组实现
- 【数据结构与算法】数组应用3:稀疏矩阵压缩(Java实现)
- 数据结构与算法:数组
- 数据结构——算法之(001)(在一个数组中找出重复数值)
- 数据结构——算法之(006)(求子数组的最大和)
- 【数据结构与算法】数组应用4:多项式计算Java版
- 【数据结构与算法01】数组
- 数据结构与算法-求子数组的最大和
- 【数据结构与算法】数组应用1:矩阵乘法(Java实现)