前言
今天不扒拉那些乱七八糟的东西,整点正常的。
线性表(Linear Table)
线性表(Linear Table)作为数据结构里垫底(基础)的存在,是学习链表和列队的数据结构的前提条件。今天来扒拉这个。
线性表(Linear Table)定义
线性表,顾名思义,就是一张条状表格,你可以对它进行一系列操作,包括添加,删除……
为了防止你们想像不出来,我放张图
线性表创建即修改的代码
#include <iostream>
using namespace std;
int n, a[2001];//n为长度
void InsertValue(int pos, int value)//在第pos个元素前插入value元素
{
for (int i = n; i >= pos; i--)
{
a[i + 1] = a[i];
}
a[pos] = value;
n++;
}
void DeleteValue(int pos)//删除第pos个元素
{
for (int i = pos + 1; i <= n; i++)
{
a[i - 1] = a[i];
}
n--;
}
void OutputLinearTable()//打印线性表
{
for (int i = 0; i < n; i++)
{
cout << a[i] << ' ';
}
cout << endl;
}
//以下是正常操作
int main() {
int type = 1, pos, value;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
while (type != 0)
{
cin >> type;
switch (type)
{
case 0:
cout << "Quit" << endl;
break;
case 1:
cin >> pos >> value;
InsertValue(pos, value);
OutputLinearTable();
break;
case 2:
cin >> pos;
DeleteValue(pos);
OutputLinearTable();
break;
case 3:
cin >> pos;
cout << a[pos] << endl;
break;
default:
cout << "You can only input 1,2,3 to visit or change linear table, input 0 to quit." << endl;
break;
}
}
return 0;
}
解释原理
线性表的创建,简单,一维数组
你可能看不懂InsertValue和DeleteValue两个函数的原理,我还是用图来解释
以下是InsertValue的解释图
以下是DeleteValue的解释图
总结
总的来说,线性表的添加删除原理就两句话
添加:让一个空位,插进去
删除:让一个元素消失的最好方法是找另一个把它替代掉
结束语
额,那三张图我画了20分钟 ,所以,能给三连吗??!!
ヾ( ̄▽ ̄)Bye~Bye~