– 在編寫之前首先需要說明,在使用c語言編寫時,在自定義外函式(也就是在main函式體之外)體內不能使用&符號以及「.」符號,取而代之的是 * 號以及「->」符號1. 首先是靜態順序表結構體的編寫
typedef
struct
sqlist;
2. 初始化
void
initlist
(sqlist *l)
3. 插入操作
bool listinsert
(sqlist *l,
int i,
int e)
if(l->length>=maxsize)
for(
int j =l->length; j>=i;
++j)
l->data[i-1]
=e; l->length++
;return true;
}
4. 刪除操作
bool listdelet
(sqlist *l,
int i,
int*empt)
*empt=l->data[i]
;for
(int j = i; j< l->length-1;
++j)
l->length--
;return true;
}
bool listvaluedelet
(sqlist *l,
int i,
int*empt)
int k=0;
for(
int j =
0; j< l->length-k;
++j)
++k;}}
*empt=k;
l->length-
=k;return true;
}
#include
#include
#include
#include
#define maxsize 50
#define bool int
#define true 1
#define false 0
//結構體定義
typedef
struct
sqlist;
//初始化
void
initlist
(sqlist *l)
//插入操作
bool listinsert
(sqlist *l,
int i,
int e)
if(l->length>=maxsize)
for(
int j =l->length; j>=i;
++j)
l->data[i-1]
=e; l->length++
;return true;
}//按位置進行刪除
bool listdelet
(sqlist *l,
int i,
int*empt)
*empt=l->data[i]
;for
(int j = i; j< l->length-1;
++j)
l->length--
;return true;
}//按值查詢刪除
bool listvaluedelet
(sqlist *l,
int i,
int*empt)
int k=0;
for(
int j =
0; j< l->length-k;
++j)
++k;}}
*empt=k;
l->length-
=k;return true;
}int
main()
printf
("順序表的長度為:%d\n"
,l.length )
;int empt;
listdelet
(&l,2,
&empt)
;printf
("刪除的元素為:%d\n"
,empt)
;for
(int i =
0; i < l.length;
++i)
printf
("順序表的長度為:%d\n"
,l.length )
;int count;
listvaluedelet
(&l,6,
&count)
;printf
("刪除元素6的次數為:%d\n"
,count)
;for
(int i =
0; i < l.length;
++i)
printf
("順序表的長度為:%d\n"
順序表的初始化 刪除 插入
初始化線性表 include include include define list init size 100 define listincrement 10 define ok 1 define error 0 define overflow 2 struct sqlist char elem ...
順序表的初始化 插入 刪除
昨天晚上做了中移動蘇州軟體公司的暑期實習崗的筆試題,感覺備受打擊,尤其是自以為是的資料結構題 從快排 歸併排序 堆排序中選一種實現 碎決定再次學習資料結構一次,並將重要的資料結構用程式實現。這裡先實現的是順序表的初始化,插入和刪除操作。include using namespace std 線性表的...
靜態鍊錶的初始化 插入 刪除
include include define ok 1 define true 1 define error 1 define false 1 define overflow 2 define elemtype int define status int 靜態鍊錶 x 使用陣列實現鍊錶,可以在沒有指...