順序表的基本操作 個人程式設計練習)

2021-10-10 19:14:11 字數 3318 閱讀 9946

《資料結構 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...