資料結構(C語言)線性表的建立 插入 刪除等操作

2021-08-28 18:04:16 字數 1229 閱讀 1814

插入:若是在第i個元素之前插入乙個元素時,需將第n至第i個元素向後移動乙個位置。

刪除:刪除第i個元素需要將從第i+1至第n個元素向前移動乙個位置。

當在順序儲存結構的線性表中某個位置刪除或插入乙個資料元素時,其時間主要耗費在移動元素上,平均時間複雜度為o(n)

#include#include#define true 1;

#define false 0;

#define ok 1;

#define error 0;

#define overflow -2;

typedef int status;

typedef int elemtype;

typedef struct sqlist;

status initlist(sqlist &l)//初始化線性表

status listinsert(sqlist &l,int i,elemtype e)//在順序表第i個位置之前插入新的元素e

l.elem = newbase;

l.listsize += 10;

} elemtype *q = &(l.elem[i - 1]); //將l表中第i個元素的位址資訊傳遞給指標q

for (elemtype *p = &(l.elem[l.length - 1]); p >= q; --p)//p為末尾元素的位址

*q = e;

++l.length;

return ok;

}status outputlist(sqlist l)//輸出線性表中的元素

return ok;

}status listlength(sqlist l)//返回線性表的表長

status getelem(sqlist l, int i, elemtype &e)//用e返回第i個元素的值

status clearlist(sqlist &l)//清除線性表的資料

status deletelist(sqlist &l,int i,elemtype &e)//刪除第i個元素,並用e返回其值

{ if (i<1 || i>l.length) return error;

e = l.elem[i - 1];//通過下標找到第i個元素的值

elemtype *p = &(l.elem[i - 1]);

elemtype *q = l.elem + l.length - 1;

for (p; p ****於《資料結構》(c語言)嚴蔚敏

資料結構 線性表 C語言

include include define maxsize 20 define elemtype int typedef struct sqlist 順序表型別 void createlist sqlist l,elemtype a,int n 由a中的n個元素建立順序表 l length k 設...

C語言資料結構 線性表

今天又是活力滿滿的一天!加油呀!今天開始學習線性表啦!一 何為線性表?線性表就像我們買票排隊一樣,具有線一樣性質的結構。線性表的官方定義 由零個或多個資料元素組成的有限序列。二 線性表的特點 元素之間有先來後到,具有一定的順序。若元素存在多個,會牽扯到前驅後繼的概念 則第乙個元素無前驅,最後乙個元素...

資料結構 C語言線性表操作

插入 修改 刪除 查詢 include stdio.h include malloc.h 表的結構 typedef struct seqlist 建立表 void creatseqlist seqlist l 列印出表 void showseqlist seqlist l 在表中插入元素 void ...