資料結構,線性表順序表示定義的結構體中含有Elemtype elem下文為什麼就是用elem

2023-01-23 04:31:04 字數 3468 閱讀 5425

1樓:匿名使用者

確實是第i個元素,不是地址加1。c/c++預設指標+1時,為指標地址加上該指標所指型別的大小。

在順序線性表中,elemtype *elem; 定義的elem為什麼後面可以用 l.elem[i]形式,elem是陣列嗎還是怎麼回

2樓:匿名使用者

陣列名實際上就是第一個元素的指標,指標和陣列在用法上有很多相似

*(elem+n) 和elem[n] 返回的是同一個東西

資料結構嚴蔚敏和吳偉民版的22和23頁的**typedef struct{elemtype *elem}是什麼,後面怎麼就變成l.elem

3樓:匿名使用者

知道是新人,最好就是好好把書讀懂,而不是急切地來提問……

sqlist &l 是指 一個 sqlist 結構的引用,一般是c++用的,標準c語言也可以用,不過教科書上一般在討論另外兩種的區別和用處。

sqlist &l就類似於sqlist l,而不是 *l,所以,這種情況下,c語言裡面結構體當中元素的呼叫,就是l.elem,或l.length。

如果是*l,也就是指標的話呢,就是l->elem,l->length。

elem是指標,但是從l來呼叫它的時候,主要是看l 是什麼型別,哪個更高階,哪個更重要很明顯嘛,作小弟的怎麼能影響到大哥呢?

線性順序表的elem是自定義的結構體型別時怎麼辦啊

4樓:匿名使用者

of(int)*st.length);這是強制定義,是c語言重要的特點。主要的作用就是分配st.

length的儲存空間。malloc=memorry+allocate(就是申請儲存空間的);舉個簡單的例子t=(elem*)malloc(3*sizeof(elemtype));其中sizeof是型別elemtype尺寸的大小,假設elemtype是整型int(佔據四個儲存單元),那麼3*4=12個儲存單元,這樣編譯系統就會給st分配12個儲存單元了!用int *elem初始化順序表是指用一組連續的儲存單元依次儲存線性表的資料元素。

用int *elem初始化順序表與直接將elem定義為一維陣列初始化的沒有實質性的區別。用int *elem初始化順序表其內部實質就是用一維陣列儲存的方式進行的。

資料結構中為什麼要定義elemtype?直接用int不就行了?

5樓:聽不清啊

它的意思是說,這種演算法適合於任何元素型別,包括自定義的結構體型別等,適用範圍更廣。

6樓:gta小雞

你怎麼能確定資料型別一定是整型呢?

資料結構中,資料結構中的selemtype和elemtype是一樣的意思麼?

7樓:自我程式設計

和資料結構沒有bai直接關

du系。

有寫書本zhi

用兩個詞表示兩種資料型別dao來說明用回

的,是偽**,沒有答這樣的關鍵字。

你也自己定義變數型別起這個名字。

比如我們定義結構型別:

#include

typedef struct selemtypeselemtype;

int main()

8樓:工程曉梅

不一樣,elemtype是代表某一資料型別,elemtype一般用於演算法的編寫中,當演算法在程式中實現時,就要用具體資料型別替換

資料結構中結構體定義的問題,請高手解答,不甚感激? 20

9樓:相思丶貓

不才,也來看看。

elem是int*型別,所有出現elemtype的地方都可以替換成int。指標可以像陣列一樣使用,前提是必須分配儲存空間(指標是手動分配,陣列是系統分配)。在scanf位置會出錯,因為沒有為elem分配空間。

在c中用elem=(int*)malloc(20);

關於結構體,你可以把他當做常用型別,和普通的int燈型別一樣處理。

sqlist s;

s.elem=(int*)malloc(20);

.....

10樓:匿名使用者

elem是整型;可以型陣列那樣用的,也可以直接用陣列而不用指標;如:

typedef struct

sqlist;//順序表

void output(sqlist l) //在螢幕上輸出對應操作後的順序表的所有元素

兩個效果一樣,只是訪問效果不同而已

11樓:匿名使用者

啥問題,你輸出printf 的時候 注意各個輸出之間加空格

另外輸入的時候 最後三個輸入的時候三個之間注意加 逗號

至於#include"stdafx.h" 估計是你選擇了 console 工程 會 加上這個標頭檔案 必須加

資料結構線性表問題 5

12樓:匿名使用者

偽**,除了書本上的,c語言不支援listdelete_sq(sqlist&l,int i&e)等操作,它應該通過指標,listdelete_sq(sqlist * l,int i * e)。

我改變了下面的**。

#包括中

#包括是否

#包括#定義ok 1

#定義錯誤0 br />#定義list_init_size 100

#定義listincrement 10

#定義elemtype詮釋

既定義溢位-1

typedef結構

sqlist;

initlist_sq(sqlist *長)

l-> elem =(elemtype *)malloc的(list_init_size * sizeof(elemtype)的);

(l-> elem)出口(錯誤);

l->長度= 0;

> l-> listsize = list_init_size;

返回ok;

} load_sq(sqlist * l)

的printf(「\ n」);

返回ok;

} listinsert_sq(sqlist *長,詮釋,)/ /第i個位置之前插入一個新的元素 -

q =&(l-> elem [i-1]);

(p值=&(l-> elem [l->長度-1]),p = q - p)*(p +1)= * p;

* q = e;

+ l->長度;

返回ok;

} listdelete_sq(sqlist * l,int i * e)/ /刪除第i個元素,和e返回其值 ()

(1)的printf(「1:插入元素\ n2:刪除元素\ n3:載入所有元素\ n0:退出\ n請選擇:\ n「);,

scanf函式(」%d「,&a)款;

開關(a)

> } }

資料結構c語言描述線性表實驗,資料結構(C語言描述) 線性表實驗

include include define list init size 100 define listincrement 10 typedef structsqlist sqlist sq void initlist sq sqlist sq 初始化列表 void getelem sqlist ...

資料結構順序表的遍歷操作要怎麼寫,急急急急!謝謝

遍歷就是輸出所有資料的意思,我現在要趕作業!沒時間幫你寫!只能給你個參考 include using namespace std define list int size 100 define listincrement 10 define ok 1 define overflow 0 typede...

嚴蔚敏資料結構應該怎麼學習,嚴蔚敏的資料結構怎麼學習?

這樣學 1.資料儲存的目的是便於資料訪問。這個關係就是資料結構 2.演算法是計算機解題的模型 輸入,輸出,順序執行,跳轉,迴圈,分支,有限步驟。3.人大腦組織資料的方式 有線,樹,圖三種邏輯結構,而計算機儲存採用順序,鏈式和兩者混合的方式。前者是概念性的東西,後者是物理實現。4.線形結構 演算法是迭...