關於這個,只怪自己寒假裡無法完全集中精力,看老九軍的這一節網課重複看了三天,才弄清了些東西。
對於剛開始接觸程式設計的初學者,這裡要引入乙個索引下標以及位置的概念判斷插入的索引index是否合法。
比如index是否小於0,是否超出了容器規定的最大範圍。
判斷容器內的元素是否已滿。
判斷插入的索引index是否在容器長度之內。
從下標為index的元素開始,每個元素往右移動乙個位置。
表長度length+1。(容易忘記的地方)
#pragma once
constexpr
auto max_size =
255;
//定義容器的最大容量;
#include
using
namespace std;
typedef
struct
elementtype;
//資料元素
typedef
struct
seqlist;
//定義順序列表
void
insertelement
(seqlist* seqlist,
int index, elementtype element)
//插入演算法
if(index<
0|| index>max_size -1)
if(index > seqlist-
>length)
for(
int i = seqlist-
>length -
1; i >= index; i--
) seqlist-
>datas[index]
= element;
seqlist-
>length = seqlist-
>length +1;
}void
initlist
(seqlist* seqlist, elementtype* elemarray,
int length)
//初始化
for(
int i =
0; i < length; i++)}
void
printlist
(seqlist* seqlist)
//列印結果
}
資料結構 順序表的插入演算法
順序儲存線性表的插入演算法思路 1。如果插入的位置不合理,丟擲異常 2。如果線性表的長度大於陣列的長度,則丟擲異常或動態增加容量 3。從最後乙個元素開始向前遍歷到第i個位置,分別將他們都向後移動乙個位置 4。將要插入元素填入位置i處 5。表長加1 include using namespace st...
資料結構的插入演算法
要求實現乙個插入函式,實現在鍊錶llist中的元素x之後插入乙個元素y的操作 int insertpost link linklist llist,datatype x,datatype y 其中 llist是操作的鍊錶,x是待插入元素y的前驅節點元素,y是待插入的元素 include includ...
資料結構與演算法 遞增鍊錶的插入
題目描述 給定乙個遞增整數序列和某個整數m,構造出此遞增序列對應的鍊錶,並建立以m為值的新結點插入到鍊錶中,使其結果序列依然保持遞增順序。輸入每個輸入包含乙個測試用例,第1行包含原序列長度n 任意long int範圍內的正整數 與待插入的整數m 第2行包含n個遞增的整數代表原遞增數列。輸出根據此遞增...