插入:若是在第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 ...