データ構造導論シリーズ①---リニアテーブルの基本予算:演算の挿入、削除、位置決め演算(実現コードを含む)
2791 ワード
1、挿入演算
順序表の挿入予算は、順序表のi番目の要素の前に、新しい要素を挿入します.長さnの線形テーブルを長さn+1の直線テーブルに変更します.
実現コードは以下の通りです.
削除演算とは、線形表のi番目のデータ要素を削除し、長さnの線形表を長さn−1の線形表に変更することを意味します.
実現コードは以下の通りです.
位置決め演算の機能は、線形表Lの値がxの結点番号に等しい最小値を検索し、xの結点が見つからない場合、結果0を返します.
実現コードは以下の通りです.
順序表の挿入予算は、順序表のi番目の要素の前に、新しい要素を挿入します.長さnの線形テーブルを長さn+1の直線テーブルに変更します.
実現コードは以下の通りです.
#include
using namespace std;
typedef int DataType;
const int Maxsize = 8;
typedef struct
{
DataType data[Maxsize]; //
int length; //
}SeqList; // SeqList
SeqList L; // L
void InsertSeqlist(SeqList L, DataType x, int i) // : X L i
{
if (L.length == Maxsize) cout << (" "); // ( vs C++ , C ,c exit(" "), 。
if (i<1 || i>L.length + 1) cout << (" ");// , , L.lenth+1
for (int j = L.length; j >= i; j--) //for i,j : j ,
L.data[j] = L.data[j - 1]; // L
L.data[i - 1] = x; // X
L.length++; // , L 1
}
int main()
{
SeqList L = { { 1,2,3,4,5,6,7 },8 }; //
InsertSeqlist(L,3,3}; // 3 3
}
2、削除演算削除演算とは、線形表のi番目のデータ要素を削除し、長さnの線形表を長さn−1の線形表に変更することを意味します.
実現コードは以下の通りです.
#include
using namespace std;
typedef int DataType;
const int Maxsize = 8;
void DeleteSeqLIst(SeqList L, int i) // : i
{
if (i<1 || i>L.length) // : i<1 i> , i 。
cout << " " << endl; //
for (int j = i; j < L.length; j++) // i i-1
L.data[j - 1] = L.data[j]; //
L.length--;
}
int main()
{
SeqList L = { { 1,2,4,5,6,7,8 },8 }; //
DeleteSeqLIst(L,3 ); // L 3
}
3、位置決め演算位置決め演算の機能は、線形表Lの値がxの結点番号に等しい最小値を検索し、xの結点が見つからない場合、結果0を返します.
実現コードは以下の通りです.
#include
using namespace std;
typedef int DataType;
const int Maxsize = 8;
int LocateSeqlist(SeqList L, DataType x) //
{
int i = 0; // , i 0
while ((i < L.length) && (L.data[i] != x)) // i i x : x
i++; //i+1
if (i < L.length) // i
return i + 1; // x
else
return 0; // x 0
}
int main()
{
SeqList L = { { 1,2,4,5,6,7,8 },8 }; //
int x = LocateSeqlist(L, 4); // 4 x
cout << x << endl; //
}