首先定義順序表表頭
typedef struct
sqlist;
定義結構,一定要明白typedef是等價的意思,
sqlist 結構的別名。
其次就是
status getelem(sqlist l,int i,int *e)
if(l.length==0) //如果表長為空,返回錯誤
return error;
if(i<1 || i>l.length+1) 超過表長或者 小於1,返回錯誤
return error;
*e = l.data[i-1]; //通過指標獲取到l.data[i-1]的值
return ok;
} //這是get元素操作,對引數sqlist l,在main裡必須傳入,位址。
status listinsert(sqlist *l,int i,int e)
if(i<1)
return error;
if(i > l->length+1)
return error;
if(l->length==maxsize)
return error;
int k ;
for(k=l->length-1;k>=i-1;i--)
l->data[k+1]=l->data[k]; //不斷後移,l->data[k+1]=l->data[k],由這一句來判斷,for迴圈條件
l->data[i-1]=e; //插入這個數值
l.length++;表長加1
return ok; //為什麼傳入sqlist *l,結構體指標,操作結束後,方便直接通過指標訪問.以及傳入的是指標必須l->操作符,不能是l.data操作符.
status listdelete(sqlist *l,int i;int *e)
int k;
if(l->length==0)
return error;
if(i<1 ||i>l->length)
return error;
*e = l->length[i-1];//儲存要刪除的內容
for(k=i;klength;k++)
l->data[k-1]=l->data[k];//移動後面的陣列把這個位置覆蓋掉,實現刪除.
附上#define maxsize 20
#define ok 1
#define error 0
#define true 1
#define false 0
typedef int status;
typedef int elemtype;
心得,出現問題用ide除錯就好,自己去發現問題,其次就是不斷思考。
以及c語言的底子要打好。
資料結構之順序表
首先是標頭檔案seqlist.h ifndef seqlist h define seqlist h include includeusing namespace std define elemtype int define seqlist default size 10 typedef struc...
資料結構之順序表
順序表的思想容易了解,但是 不容易掌握,我這裡根據老師所提供的 進行一下簡單的總結 這個 包含順序表的查詢,插入,刪除,建表,輸出資料 includeusing namespace std define ok 1 define error 0 define overflow 2 typedef in...
資料結構之順序表
順序表就是按照順序儲存方式儲存的線性表,該線性表的結點按照邏輯次序一次存放在計算機的一組連續的儲存單元中如下圖 由於順序表是一次存放的,只要知道了該順序表的首位址以及每個資料元素所占用的儲存長度,那麼我們就很容易計算出任何乙個資料元素 也就是資料繫結點 的位置。1 結點資料型別 public cla...