#define maxsize 20
//儲存空間初始分配量
typedef
int elemtype;
//elemtype型別根據實際情況而定,這裡假設為int
typedef
struct
sqlist;
對於第i個資料元素ai的儲存位置可以由a1推算得出:
*loc(ai)=loc(a1)+(i-1)c;
通過這個公式可以隨時算出線性表中任意位置的位址,不管是第乙個還是最後乙個,都是相同的時間。那麼我們對每個線性表位置的存入或者取出資料,對於計算機來說都是相等的時間,也就是乙個常數,因此用我們演算法中學到的時間複雜度的概念來說,它的訪問時間效能為o(1)。我們通常把具有這一特點的儲存結構成為隨機訪問結構。
#define ok 1
#define error 0
#define true 1
#define false 0
typedef
int status;
/* status是函式的型別,其值是函式結果狀態**,如ok等 */
/* 初始條件:順序線性表l已存在,1<=listlength(l) */
/* 操作結果:用e返回l中第i個資料元素的值 */
status getelem
(sqlist l,
int i,elemtype *e)
思路:
/* 初始條件:順序線性表l已存在,1<=i<=listlength(l) */
/* 操作結果:在l中第i個位置之前插入新的資料元素e,l的長度加1 */
status listinsert
(sqlist *l,
int i, elemtype e)
l->data[i-1]
= e;
//將新元素插入
l->length++
;return ok;
}
思路:
/* 初始條件:順序線性表l已存在,1<=i<=listlength(l) */
/* 操作結果:刪除l的第i個資料元素,並用e返回其值,l的長度減1 */
status listdelete
(sqlist *l,
int i, elemtype *e)
l->length--
;return ok;
}
#include
#define maxsize 20
//儲存空間初始分配量
#define error 0
#define true 1
#define false 0
typedef
int status;
typedef
int elemtype;
//elemtype型別根據實際情況而定,這裡假設為int
//結構體---單鏈表順序儲存
typedef
struct
sqlist;
//指標方式獲取元素
//status getelem(sqlist* list, int i, elemtype* e)else if(i > list->length)else
//}//獲取元素
status getelem
(sqlist list,
int i, elemtype* e)
else
if(i > list.length)
else
}//插入
status insertelem
(sqlist* list,
int i, elemtype e)
else
if(i>list->length+1)
else
list->data[i-1]
= e;
list->length++
;printf
("當前list長度:%d\n"
,list->length)
;return true;}}
//刪除
status deleteelem
(sqlist* list,
int i)
else
if(i>list->length)
else
list->length--
;return true;}}
//主函式
intmain()
sqlist.length = initnum;
for(i=
0;i)//初始化檢測
printf
("鍊錶的第%d個資料是:%d\n"
,i+1
,sqlist.data[i]);
printf
("初始化完成!\n");
while
(continueflag)
break
;case3:
//刪除
printf
("------------刪除-----------\n");
printf
("輸入要刪除的位置:\n");
scanf
("%d"
,&deletesize);if
(deleteelem
(list, deletesize)
== true)
}break
;case4:
continueflag = false;
printf
("感謝使用!");
break
;default
:printf
("功能號不存在,請重新輸入!\n");
再窺 單鏈表和順序儲存
先接一下上次的筆記,實現對單鏈表進行刪除 宣告結點p和q 首節點賦值給p,下乙個結點賦值給q 迴圈執行釋放p,將q賦值給p的操作 刪除第乙個結點後,之後的結點就是首節點了,以此類推 string clearlist node l l next null 成為了空表 return clear dele...
再窺 單鏈表和順序儲存
先接一下上次的筆記,實現對單鏈表進行刪除 宣告結點p和q 首節點賦值給p,下乙個結點賦值給q 迴圈執行釋放p,將q賦值給p的操作 刪除第乙個結點後,之後的結點就是首節點了,以此類推 string clearlist node l l next null 成為了空表 return clear dele...
再窺 單鏈表和順序儲存
先接一下上次的筆記,實現對單鏈表進行刪除 宣告結點p和q 首節點賦值給p,下乙個結點賦值給q 迴圈執行釋放p,將q賦值給p的操作 刪除第乙個結點後,之後的結點就是首節點了,以此類推 string clearlist node l l next null 成為了空表 return clear dele...