《資料結構 c語言版》順序表的基本操作(個人程式設計練習)
#include
#include
#define maxsize 50
typedef char elemtype;
typedef struct
sqlist; //順序表型別
//建立順序表
void createlist(sqlist *&l,elemtype a,int n)
l->length = n;
}//初始化線性表
void initlist(sqlist *&l)
//銷毀線性表
void destroylist(sqlist *l)
//判斷線性表是否為空表
bool listempty(sqlist *l)
//返回順序表l的元素個數(長度)
int listlength(sqlist *l)
//輸出順序表
void displist(sqlist *l)
}//獲取順序表中第i個元素
bool getelem(sqlist *l,int i,elemtype &e)
e = l->data[i-1];
return true;}/*
在順序表中查詢元素,首先用while函式例遍順序表裡的全部元素,
判斷該元素是否為e
找到需要查詢的元素,則返回return i+1;
*/int locateelem(sqlist l,elemtype e)
else}}
/在順序表中第i個位置插入元素 所以元素移動的範圍為 l->length,
將插入位置後的元素往後移 l->data[j]=l->data[j-1] ,
插入乙個元素順序表變長 l->lengtg++ data[i]= e
*/bool listinsert(sqlist *&l,int i,elemtype e)
i–;for( j=l->length ; j>i ; j–)/下標從0開始,所以l->length/
l->data[i] = e;
l->length++;/順序表表長加一/
return true;}/*
在順序表中刪除某乙個元素,該被刪除元素在它後面的元素向前移一位
移動的範圍 i~length+1,
data[i]之後的元素向前移 i~length-1 data[j] =data[j+1]
刪除乙個元素後順序表表長變短 l->length–
*/bool listdelete(sqlist *&l ,int i ,elemtype &e)
i–;for(j=i ; j>l->length-1 ; j++)
l->length–;
return true;
}int main()
{sqlist *l;
elemtype e;
printf("順序表功能如下:\n");
printf("\t\t<1>初始化順序表\t\t\n");
initlist(l);
printf("\t\t<2>依次插入a、b、c、d、e元素\t\t\n");
listinsert(l,1,'a');
listinsert(l,2,'b');
listinsert(l,3,'c');
listinsert(l,4,'d');
listinsert(l,5,'e');
printf("\t\t<3>輸出順序表\t\t\n");
displist(l);
printf("\t\t<4>輸出順序表長度:%d\t\t\n",listlength(l));
printf("\t\t<5>順序表l為%s\t\t\n",(listempty(l)?"空":"非空"));
getelem(l,3,e);
printf("\t\t<6>輸出順序表的第三個元素:%c\t\t\n",e);
printf("\t\t<7>元素a的位置:%d\t\t\n",locateelem(l,'a'));
printf("\t\t<8>在第四個位置上插入f元素\t\t\n");
listinsert(l,4,'f');
printf("\t\t<9>輸出順序表l:\t\t\n");
displist(l);
printf("\t\t<10>刪除l的第三個元素\t\t\n");
listdelete(l,3,e);
printf("\t\t<11>輸出順序表l:\t\t\n");
displist(l);
printf("\t\t<12>釋放順序表l\t\t\n");
destroylist(l);
return 1;
在宣告線性表的順序儲存型別時,定義一 個data陣列來儲存線性表中的所有元素,定義乙個整形變數length來儲存線性表得實際長度,採用結構體型別sqlist
建立乙個順序表,由陣列a[0…n-1]建立順序表l。或者將陣列a中的每個元素依次放入到順序表中,並將n賦值給順序表的長度域
初始化線性表,構造乙個空的線性表l,實際上只需要分配線性表的儲存空間並將length域設定為0
順序表的基本操作 順序表基本操作上機實驗
理解線性結構的基本概念,掌握兩種基本的儲存結構 順序儲存結構 順序表 和鏈式儲存結構 單鏈表 用c語言實現在兩種儲存結構上的對應操作 包括建立 刪除插入元素 遍歷等 鞏固強化c程式設計的基本方法和能力。完成順序表的建立 元素刪除 遍歷等操作,具體內容如下 有序的一組整數 1,2,3,4,6 設計順序...
程式設計實現順序表的基本操作函式
1 void initlist sqlist l,int n 建立乙個表長為n的順序表 2 void listinsert sqlist l,int i,elemtype e 在順序表中第i個位置插入元素函式e 3 void listdelete sqlist l,int i,elemtype e ...
靜態順序表順序表的基本操作
一般採用陣列表示順序表,陣列有靜態陣列和動態陣列之分,在此我們採用靜態陣列表示靜態順序表,如圖為線性表的結構 下面實現順序表的基本操作 初始化 銷毀 尾插 頭插 尾刪 頭刪 根據指定元素刪除 指定位置插入和刪除 查詢 靜態順序表的結構定義 define maxsize 100 typedef int...