导航:首页 > 数据分析 > 在数据结构中如何进行数据初始化

在数据结构中如何进行数据初始化

发布时间:2023-01-29 08:04:34

㈠ C语言(数据结构)顺序表的初始化

C语言(数据结构)顺序表的初始化需要申请结点空间。

初始化顺序表

1、/**

2、 * 初始化顺序表

3、 * 返回1 表示初始化成功

4、* 返回0 表示初始化失败

5、*/

6、int initList_sq(SqList &L) { //只有在C++中才会有引用的存在

7、 L.elem = (SeqType *) malloc(sizeof(SeqType) * LIST_INIT_SIZE);

8、 if (!L.elem)

9、 return 0; //内存分配失败,存储空间不够

10、 L.length = 0; //表示顺序表为空

11、 L.listsize = LIST_INIT_SIZE; //表示顺序表里,最大存储单元个数

分配顺序表的存储单元,初始化顺序表属性的值。

㈡ 结构数组的初始化

并不是aleda所说的原因,你可以试一下,即便不要结构体不要字符串
struct city
{
double population;
double housing;
double ave;
};

city cities[2];

cities[0]={22,10000,11};
cities[1]={22,20000,11};

这里与结构体匹配了,但是同样不可能通过
原因是C\C++语法是禁止结构体这样赋值的!!

你提到了初始化,的确结构体数组初始化是可以通过大括号这种形式进行初始化的,但是一定要注意

类似这样的语句,不是初始化,而是重新赋值!
cities[0]={"A",10000,11};
cities[1]={"B",20000,11};

结构体数组的初始化在
city cities[2];
这一句的时候就完成了(初始化了cities[0]和cities[1]这两个元素)

所以正确的初始化格式应该如下:

city cities[2] = {{"a", 1,1,1}, {"b", 1,1,1}};
// 还要注意一点,你问题处的成员少给了一个,结构体里有三个double,你只给了两

记住一点:

初始化永远是在定义的时候完成的,
(或者如果是类的成员变量,其初始化是在构造函数的初始化列表中完成,如果你学的是C,可以忽略)

非定义处的只有重新赋值,没有初始化!

㈢ 结构体数组怎么初始化

1. 可以用 memset 初始化;
2. 用循环初始化每个数组中的每个结构体元素。

㈣ 数据结构中的线性表的初始化操作是什麽

初始化就是建立一个空线性表,那直接把长度置为0就行了。
1
/*
初始化顺序线性表
*/
2
Status
InitList(SqList
*L)
3
{
4
L->length=0;
5
return
OK;
6
}
因为要初始化,要对线性表本身进行操作,所以不能用值传递。值传递不会改变实参的值嘛。地址传递的话呢,实际上在函数内部执行了这么一个操作:L
=
&L.
所以操作函数内部的L,也就相当于操作外部的线性表L。其实地址传递也是值传递。不过这个值是地址而已。
就是说,需要修改表的就传指针,不需要修改表的传值就行了。那补上一个完整的可运行的程序
01
#include
"stdio.h"
02
03
#define
OK
1
04
#define
ERROR
0
05
#define
TRUE
1
06
#define
FALSE
0
07
08
#define
MAXSIZE
20
/*
存储空间初始分配量
*/
09
typedef
int
ElemType;
/*
ElemType类型根据实际情况而定,这里假设为int
*/
10
typedef
int
Status;
/*
Status是函数的类型,其值是函数结果状态代码,如OK等
*/
11
12
typedef
struct
13
{
14
ElemType
data[MAXSIZE];
/*
数组,存储数据元素
*/
15
int
length;
/*
线性表当前长度
*/
16
}SqList;
17
18
/*
初始化顺序线性表
*/
19
Status
InitList(SqList
*L)
20
{
21
L->length=0;
22
return
OK;
23
}
24
25
int
main()
26
{
27
SqList
L;
28
ElemType
e;
29
Status
i;
30
31
i=InitList(&L);
32
printf("初始化L后:L.length=%d\n",L.length);
33
}
程序运行结果:
1
初始化L后:L.length=0
2
3
Process
returned
22
(0x16)
execution
time
:
0.072
s
4
Press
any
key
to
continue.
有个问题,在函数内部
L->length=0;
使用箭头,而在外面调用的时候
L.length
却用实心点,两者有啥区别吗?
这个很基础嘛。。。在函数内部,传递的参数是
*L,那么L就是指针。指针需要用->指向成员。而在外部的L是实体对象,实体对象则用实心点来指向成员嘛。
OK,线性表的初始化就这么简单。

㈤ Python入门精华-OOP简化数据结构初始化过程

在python编程的过程中经常会碰到需要编写很多的类,调用很多次__init__()方法。这样经常是的代码重复量非常之大。

有没有办法可以简化构造初始化的个数,减少代码量?当然可以!方法就是将所有的属性初始化赋值放在一个基类中完成。代码如下:

对一般参数:

添加关键字参数:

让关键字参数作为映射,只允许关键字参数名字是_fields中已有的参数名。

代码如下:

想要添加不存在的关键字参数:

代码如下:

㈥ C语言数据结构顺序表初始化

C数据结构的基础是指针。好好花上几天时间把指针搞懂再来学数据结构会事半功倍。

#include <stdlib.h>
#include <stdio.h>
#define MAX_SIZE 100
#define OK 0
#define ERROR -1

typedef struct tagSqList
{
int element[MAX_SIZE];
unsigned size;
} SqList;

int Initial(SqList *pL) // 定义指针变量用*,&在C里面是用来取地址的
{
// 通过指针变量访问结构体中的字段,应该使用->运算符,而不是通常的点运算符
pL->size = 0;

return OK;
}

int main(void)
{
SqList L;
Initial(&L); // 把变量的地址传递给指针形参
printf("%d\n", L.size);
return OK;
}

㈦ C语言(数据结构)顺序表的初始化

C语言(数据结构)顺序表的初始化需要申请结点空间。
初始化顺序表
1、/**
2、 * 初始化顺序表
3、 * 返回1 表示初始化成功
4、* 返回0 表示初始化失败
5、*/
6、int initList_sq(SqList &L) { //只有在C++中才会有引用的存在
7、 L.elem = (SeqType *) malloc(sizeof(SeqType) * LIST_INIT_SIZE);
8、 if (!L.elem)
9、 return 0; //内存分配失败,存储空间不够
10、 L.length = 0; //表示顺序表为空
11、 L.listsize = LIST_INIT_SIZE; //表示顺序表里,最大存储单元个数

分配顺序表的存储单元,初始化顺序表属性的值。
定义结构

typedef int SeqType; //存储单元类型
typedef struct{
SeqType *elem; //存储空间基地址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
} SqList;
结构体内,有三个元素:存储空间基地址,类似于数组首地址;当前长度,记录顺序表中有效存储单元个数;当前分配的存储容量,顺序表中,最多容纳的存储单元个数。当顺序表中所有存储单元已经被使用,在下次插入元素之前,需要新增存储单元。这点是数组所不具有的特性。
*注:定义一个存储单元类型SeqType是为了使顺序表适和更多数据类型,使用的时候修改SeqType类型即可。

㈧ 如何对结构体变量进行初始化

结构体初始化可以再定义时制定初始值,如:

struct
student

{

int num;

char name[20];

} student1 =
{10001,"zhangxin"};

也可以采取申明类型与定义变量分开的形式,在定义变量时进行初始化:

student student1 =
{10001,"zhangxin"} 。

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data
type)的一类。

结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

㈨ 如何对结构体变量进行初始化

方法是在定义变量的同时给其一初始值。结构体变量的初始化,遵循相同的规律。x0dx0a简单变量的初始化形式如下:x0dx0a数据类型 变量名=初始化值;x0dx0a例如,定义整型变量a,并给其初始化值10的语句如下x0dx0aint a=10;x0dx0a数组的初始化,需要通过一常量数据列表,对其数组元素分别进行初始化,形式如下:x0dx0a数据类型 数组名称〔数组长度〕={初始化值1,初始化值2,?, 初始化值n};x0dx0a例如,定义长度为5的整型数组,并对其初始化的语句如下:x0dx0aint A[5]={20,21,0,3,4};x0dx0a结构体变量的初始化方式与数组类似,分别给结构体的成员变量以初始值,而结构体成员变量的初始化遵循简单变量或数组的初始化方法。具体的形式如下:x0dx0astruct 结构体标识符x0dx0a{x0dx0a成员变量列表;x0dx0a?x0dx0a};x0dx0astruct结构体标识符 变量名={初始化值1,初始化值2,?, 初始化值n };x0dx0a例如,定义struct Point类型变量,并初始化的语句如下:x0dx0astruct Point oP1={0.0,0.2,0.3};x0dx0astruct Point类型变量oP1的三个成员变量的值分别为x0dx0aoP1.x=0.0,x0dx0aoP1.y=0.2x0dx0aoP1.z=0.3x0dx0a由于定义结构体变量有三种方法,因此初始化结构体变量的方法对应有三种,上面已经介绍了其中的一种形式,其他两种形式如下:x0dx0astruct Pointx0dx0a{x0dx0adouble x;x0dx0adouble y;x0dx0adouble z;x0dx0a} oP1={0.0,0.2,0.3}; struct x0dx0a{x0dx0adouble x;x0dx0adouble y;x0dx0adouble z;x0dx0a} oP1={0.0,0.2,0.3};x0dx0a在初始化结构体变量时候,既可以初始化其全部成员变量,也可以仅仅对其中部分的成员变量进行初始化。例如:x0dx0astruct Studentx0dx0a{x0dx0along id;x0dx0achar name[20];x0dx0achar sex;x0dx0a}a= {0};x0dx0a其相当于a.id=0;a.name=“”;a.sex=‘\0x0’。x0dx0a仅仅对其中部分的成员变量进行初始化,要求初始化的数据至少有一个,其他没有初始化的成员变量由系统完成初始化,为其提供缺省的初始化值。

阅读全文

与在数据结构中如何进行数据初始化相关的资料

热点内容
西青大数据 浏览:457
2016支付宝vs微信 浏览:745
移动g2f怎么进入3g网络 浏览:435
linux配置阿帕奇 浏览:18
音乐标签id3修改工具 浏览:589
数据频繁变化是什么 浏览:977
iphone来电壁纸 浏览:40
删除文件夹找不到指定路径怎么办 浏览:487
原力大数据招聘 浏览:479
数据线圆头什么意思 浏览:768
协和app怎么取号 浏览:664
c坐标转换代码 浏览:707
唐筛数据为什么能看出男女 浏览:44
快手java 浏览:835
qq分享的文件在哪里 浏览:226
爱念电影 浏览:656
97不用下载播放器的 浏览:649
在线观看0855影视 浏览:489
女主叫向晚棠的小说 浏览:841
uglifyjs使用 浏览:328

友情链接