数据结构中的数组定义是什么?

查教学和网上资料还是没搞明白
就说一维数组
可以肯定是一段连续的存储空间,这段空间 既可以存线性结构也可以存树型结构(比如完全二叉树),但都说数组是线性结构,存储其他结构的时候就不是数组了吗?

数组中的数据在内存中的实际存放形式是线性的,但你可以按线性的方式解读(线性表),也可以按二分的方式解读(二叉树)。怎么解读和怎么存放是两码事。追问

你的意思是说:比如二叉树在存放进这段连续内存的时候,前提是把它的元素重新排好序(按照线性结构),存储进去了是吗? 解读在按照二叉树解读?

追答

就是这样

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-30
#include<iostream> using namespace std; typedef struct stu { char sno[5]; float math,chinese,english,avg,sum; }student; int main() { student s[4]; for(int i=0;i<4;++i) { sprintf(s[i].sno,"%d",i); s[i].math=i; s[i].chinese=i; s[i].english=i; s[i].avg=i; s[i].sum=i; } FILE *fp=fopen("1.txt","w"); if(fp) { for(int i=0;i<4;++i) fwrite(&s[i],sizeof(student),1,fp); //写入结构数据,用于测试 fclose(fp); } fp=fopen("1.txt","r"); int count=0; if(fp) { char *buf=new char[sizeof(student)]; while(fread(buf,sizeof(student),1,fp)!=NULL) //一个个结构读 ++count;//读入一个结构,加1 fclose(fp); } //输出文件中的结构数 cout<<"count="<<count<<endl; return 0; }
第2个回答  2019-06-30
#include <stdio.h> //标准头文件,提供宏va_start,va_arg,va_end,用于存取变长参数表
#include <stdlib.h>
#include <stdarg.h>
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -1
#define OK 1
#define INFEASIBLE -2
#define MAX_ARRAY_DIM 8 //假设数组最大维数为8
#define UNDERFLOW -1
typedef int Status;
//数组的物理存储结构
typedef struct
{
ElemType *base; //数组元素基址,有InitArray分配
int dim; //数组维数
int *bounds; //数组维数基址
int *constants; //数组映像函数基址
}
//数组的基本操作
Status InitArray(Array &A,int dim,……)
{
//若维数dim和随后的各维长度合法,则构造相应的数组A,并返回OK
相似回答