線性表順序表示

2021-09-02 05:57:46 字數 1677 閱讀 6861

#include#include#include#define listlength 100

typedef struct datatype;

typedef struct initlist,*list;

//建立並返回乙個空的線性表

list createlist(void)

else

} printf("out of space!!!\n");

return null;

}//向list中末尾插入元素x,返回值:1成功,0失敗

int insert(list list, datatype x)

list->element[list->n++] = x;

return 1;

}//向list中指定下標位置插入元素x,返回值:1成功,0失敗

int insertbylocation(list list, int position, datatype x)

if (position < 0 || position > list->n)

int p;

for (p = list->n; p >= position;p --)

list->element[position] = x;

list->n++;

return 1;

}//判斷兩個datatype元素是否相等,返回值:1相等,0不等

int equal(datatype x1, datatype x2)

//根據元素x在list中查詢,返回值:返回對應下標位置,-1表示沒有找到

int find(list list, datatype x)

if (index == list->n)

return index;

}//根據下標位置在list中查詢,返回值:返回對應角標位置的元素

datatype findbylocation(list list, int position)

return list->element[position];

}//返回值:返回list中元素個數

int size(list list)

//判斷list是否為空,返回值:1空,0非空

int isempty(list list)

//在list中查詢與元素x相等的元素並刪除,返回值:1成功,0失敗

int delete(list list, datatype x)

list->n--;

return 1;

}//在list中查詢對應下標位置元素並刪除,返回值:1成功,0失敗

int deletebylocation(list list,int position)

for (; position < list->n; position++)

list->n--;

return 1;

}//銷毀list,返回值:空

void destroy(list *list)

//列印list,返回值:空

void printlist(list list)

printf("size:%d", size(list));

printf("\n");

}int main() ;

**對應著上一章的抽象資料型別定義,main函式中是測試

順序表示的線性表 順序表

順序表具有以下特徵,邏輯上相鄰的元素,在物理上也是相鄰的,只要確定了第乙個元素的起始位置,線性表上的任一元素都可以隨機訪問因此線性表的順序儲存結構是一種隨機訪問的儲存結構 儲存結構 include listsize 100 typedef struct datatype list listsize ...

線性表的順序表示

線性表的順序表示終於馬馬虎虎的勉強寫 完了,寫的不是很完整,開始時比較不理 解就是動態分 配記憶體,現 在懂一點點了,資料結構落下很多了,這幾天要好好整了 include include includeusing namespace std define ok 1 define error 0 de...

線性表的順序表示

假設線性表的元素型別為elemtype,線性表的儲存型別為 define initsize 100 線性表的動態儲存型別 typedef struct sqlist 插入操作 在順序表l的第i個位置插入e,成功true,失敗false bool listinsert sqlist l,int i,e...