日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《大话数据结构》读后总结(九)

發布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《大话数据结构》读后总结(九) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線性表

順序存儲結構的插入與刪除

獲得元素操作
#define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; /* Status是函數的類型,其值是函數結果狀態代碼,如OK等 */ /* 初始條件:順序線性表L已存在,1≤i≤ListLength(L) */ /* 操作結果:用e返回L中第i個數據元素的值 */ Status GetElem(SqList L, int i, ElemType *e) {if (L.length == 0 || i < 1 || i > L.length)return ERROR;*e = L.data[i - 1];return OK; } 復制代碼
插入操作
/* 初始條件:順序線性表L已存在,1≤i≤ListLength(L), */ /* 操作結果:在L中第i個位置之前插入新的數據元素e,L的長度加1 */ Status ListInsert(SqList *L, int i, ElemType e) {int k;/* 順序線性表已經滿 */if (L->length == MAXSIZE) return ERROR;/* 當i不在范圍內時 */if (i < 1 || i >L->length + 1) return ERROR;/* 若插入數據位置不在表尾 */if (i <= L->length) {/*將要插入位置后數據元素向后移動一位 */for (k = L->length - 1; k >= i - 1; k--) L->data[k + 1] = L->data[k];}/* 將新元素插入 */L->data[i - 1] = e; L->length++;return OK; } 復制代碼
刪除操作
/* 初始條件:順序線性表L已存在,1≤i≤ListLength(L) */ /* 操作結果:刪除L的第i個數據元素,并用e返回其值,L的長度減1 */ Status ListDelete(SqList *L, int i, ElemType *e) {int k;/* 線性表為空 */if (L->length == 0) return ERROR;/* 刪除位置不正確 */if (i < 1 || i > L->length) return ERROR;*e = L->data[i - 1];/* 如果刪除不是最后位置 */if (i < L->length) {/* 將刪除位置后繼元素前移 */for (k = i; k < L->length; k++) L->data[k - 1] = L->data[k];}L->length--;return OK; } 復制代碼

線性表的順序存儲結構,在存、讀數據時,不管是哪個位置,時間復雜度都是O(1);而插入或刪除時,時間復雜度都是O(n)。

線性表順序存儲結構的優缺點

歡迎掃描下方二維碼,持續關注:

互聯網工程師(id:phpstcn),我們一起學習,一起進步

轉載于:https://juejin.im/post/5ca5d0e351882544097e23e8

總結

以上是生活随笔為你收集整理的《大话数据结构》读后总结(九)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。