数据结构——数组
程序员文章站
2024-02-24 15:23:19
...
数据结构
- 数组
定义:一段固定的物理上连续的存储空间,存放同类元素;
线性存储结构;
C++:
#define int database
#define length 100
database a[length]
length为固定存储空间长度
database 为每个数组节点存放的类型
//create list
#define int database
database Creat()
{
database list_array[length];
return list_array;//返回数组首元素指针;
}
//数组遍历
for(int i=0;i<list_array.length();i++)
{
cout<<list_array[i];
}
数组的封装,实现增删改查;
抽象数据类型
数组中存放数据类型为抽象数据类型时,每个数据元素均需要初始化;
Java:
//create list
#define int database
database Create()
{
database[] a=new database[length];//new方法创建数组;
}
class Array
{
private database [] array;//数组声明;
private int element_size;//数组元素个数;
private int length;//数组固定长度;
//默认构造函数,无形参创建默认大小数组;
public Array()
{
element_size=0;
length=30;
array=new database[length];
}
//构造函数
public Array(int length)
{
element_size=0;
length=this.length;
array=new database[length];
}
//获取数组有效长度
public int require_length()
{
return element_size;
}
//遍历数组有效数据
public void show()
{
for(int 1=0;i<element_size;i++)
{
system.out.println(array[i]);//每个数据为一行;
//system.out.print(array[i]+" ");
}
}
//添加元素
public boolean Add_element(database a)
{
if(element_size==length)
{
return false;
}
array[element_size]=a;
element_size++;
return true;
}
//查找元素
//元素存在,返回下标
public int find(database m)
{
int i;
for(i=0;i<element_size;i++)
{
if(array[i]==m)
{
break;
}
}
if(i==element_size)
{
return -1;//未找到返回-1;
}
return i;//找到元素,返回当前下标;
}
//删除元素
//首先查找被删除元素是否存在
public boolean DeleteElement(database m)
{
int a=find(m);
if(a==-1)
{
return false;
}
if(a==element_size-1)
{
element_size--;
}
else
{
for(int i=a;i<element_size-1;i++)//防止下标越界
{
array[a]=array[a+1];
}
element_size--;
}
return true;
}
//修改
public boolean Rewrite(database old,database updateData)
{
int k=find(old);
if(k==-1)
{
system.out.println("The data was not exits")
return false;
}
else
{
array[k]=updateDate;
}
return true;
}
上一篇: c#显示当前在线人数示例