数组作为一种数据结构是线性表(逻辑结构)顺序存储(存储结构)的一种典型方式,由于任何一种逻辑结构都可以采用顺序存储的方式,所以从这方面看,数组可以表示任何的数据结构,只不过在时间和空间复杂度方面区别会比较大。
所以在此我们利用数组来简单谈谈数据结构:
数组:
逻辑结构|:线性结构
存储结构:顺序存储
算法:增删改查等,对于其上的操作没有特别的限制(例如对于栈,其操作集中在一端进行)。
public class Arry()
{
private char* str;
private int length = 0;
//构造函数,传入数组最大长度,并开辟最大该长度的数组
public Arry(int maxLength)
{
str = new char[maxLength];
length = maxLength;
}
//在该字符数组中查找某一字符
public int contains(char target)
{
int index = -1;
for(int i = 0; i < length; i++)
{
if (str[i] == target)
{
index = i;
break;
}
}
return index;
}
//在数组中增加一个元素
public void insert(char elem)
{
str[lenght] = elem;
length ++;
}
//删除某个指定的元素,删除成功返回true,否则返回false
public void delete(char target)
{
int index = -1;
if((index = contains(target))!= -1)
{
for(int i = index; i < length - 1;i++)
{
str[i] = str[i + 1];
}
lenght--;
return true;
}
else
return false;
}
//改变某一下标元素的值
public void change(int index, char elem)
{
str[index] = elem;
}
//列出所有元素值
public void display()
{
for(int i = 0; i < length; i++)
{
printf(str[i]+'\t');
}
}
}
以上就是当我们对现实中某一组数据采用数组这种数据结构进行存储以及操作的部分代码。当然这里对数组相关算法的实现都是最基本的实现方式,也有更便捷更好的算法实现,比如可以使用二分查找实现对于有序数组中某一元素的查找等等,在这里就不一一列举了。
版权声明:本文为wdfscsdn2015原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。