順序表 自我理解

2021-08-29 18:50:38 字數 1957 閱讀 2387

順序表的實現比較簡單些,順序表可以用陣列模擬 ,如果使用陣列進行模擬,會比採用指標更簡單,但是老師建議用指標來寫,適合初學者回憶程式基本語法。

typedef struct listsqlist;
這一段的 typedef 我想了好久的,因為在之前老師說這是乙個定義性函式,但是連著乙個結構函式我就有些暈了。。(哭唧唧)

typedef struct list 指的是 用 list 來代替 struct 即 struct node==list node。

順序表需要三個元素:{1.訪問資料 2.訪問長度,3.訪問指標}

void initerlist(sqlist &l)

printf("請輸入要插入的數:\n");

cin>>t;

int j;

for(j=l.length-1;j>i-1;j--)//插入時,先進行i位置後的每一元素位置後移乙個單位。

l.elem[i]=t; //輸入插入元素.

printf("%d",l.elem[i]);

printf("插入完成!\n");

return;

}

每乙個表的最重要的地方就是表元素的插入與輸出

void coutlist(sqlist &l)

if(l.length!=0) }

return ;

}

表的輸出先進行判斷表是否為空,若不為空,則進行輸出操作。

其他的操作就沒什麼寫的了,注重就是了解順序表的插入與輸出基本就可以了

一下是自己理解並詢問大佬純手工**。。(頭好冷啊!!)

#include#include#includeusing namespace std;

const int list_add=10;

const int list_size=100;

typedef struct listsqlist;

void initerlist(sqlist &l)

printf("請輸入要插入的數:\n");

cin>>t;

int j;

for(j=l.length-1;j>i-1;j--)

l.elem[i]=t;

printf("%d",l.elem[i]);

printf("插入完成!\n");

return;

}void deletelist(sqlist &l)

for(int j=i+1;j<=l.length;j++)

l.length--;

printf("刪除完成!\n");

return;

}void prolist(sqlist &l)

printf("該元素的前驅為:%d",l.elem[i-1]);

return;

}void nextlist(sqlist &l)

printf("該元素的後驅為:%d",l.elem[i+1]);

return;

}void getelem(sqlist &l)

printf("該位置的數為%d",l.elem[i]);

return ;

}void coutlist(sqlist &l)

if(l.length!=0) }

return ;

}void showlist()

switch(c)

case 1:

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

case 8:

case 9:

} getchar();

getchar(); }

return 0;

}

順序表的理解

傳統順序表 起始實體地址 邏輯位址 元素下標 儲存單元大小 每乙個元素所占用幾個位元組 所查詢元素的實體地址 資料元素本身連續儲存,每個元素所佔的儲存單元大小固定相同 元素的下標是其邏輯位址,而元素儲存的實體地址是元素實際記憶體位址 可以通過儲存區起始位址加上邏輯位址與儲存單元的大小 c 的乘乘積計...

hasOwnProperty自我理解

暫時不考慮es6中symbol,hasownproperty 方法返回的是乙個物件上是否包含乙個指定屬性,如果含有則返回true,如果沒有則返回false。和in 運算子不同,該方法會忽略掉那些從原型鏈上繼承到的屬性。這一特性嚐嚐用來檢測乙個物件上是否包含自身擁有的屬性,並且不是從原型鏈上繼承而來的...

Nsis的自我理解

nsis 指令碼語言的理解 1.nsis 語言的理解 nsis指令碼語言比較獨特,類似於巨集彙編,語法有些像c語言,感覺是純面向過程的東東。功能還算強大,能呼叫windows api,支援用動態鏈結庫形式的擴充套件。能呼叫和建立核心物件。例如可用用createmuteex 用來建立單例項。此處深有體...