導航:首頁 > 數據分析 > 在數據結構中如何進行數據初始化

在數據結構中如何進行數據初始化

發布時間: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僅僅對其中部分的成員變數進行初始化,要求初始化的數據至少有一個,其他沒有初始化的成員變數由系統完成初始化,為其提供預設的初始化值。

閱讀全文

與在數據結構中如何進行數據初始化相關的資料

熱點內容
蘋果6怎麼找文件 瀏覽:843
無已關聯的小程序 瀏覽:678
蘭州共享單車小綠app 瀏覽:814
iphone5c黑色 瀏覽:374
河南少兒計算機編程加盟怎麼樣 瀏覽:135
共享文件夾可以共享多少個 瀏覽:197
文愛用什麼app 瀏覽:920
導致iis死機代碼 瀏覽:280
iphone5c電池電壓不足 瀏覽:639
javatcp通信 瀏覽:189
傳奇永恆140升級攻略 瀏覽:421
win10小娜文件損壞 瀏覽:643
寫作時用什麼樣的網路用語 瀏覽:696
官網正版win10系統 瀏覽:111
iphone4s升級固件 瀏覽:228
外國小孩為主角的電影 瀏覽:650
老電影60年代戰爭片 瀏覽:299
百度雲同步盤文件丟失 瀏覽:833
穿越從永無止境電影世界開始 瀏覽:572
逆戰聖光升級鷹王好嗎 瀏覽:770

友情鏈接