数据结构与算法—线性表的顺序存储结构C++实现
// 小甲鱼 的 数据结构与算法
//线性表的 顺序存储结构C++ 实现
#include <iostream>
const int MAXSIZE = 30;
typedef int Elemtype;
//创建链表结构
struct sqlist
{
Elemtype sdata;
int length ;
};
//初始化
void list_init(sqlist *s)
{
s->length = 0;
s->sdata = 0;
}
//从尾部插入元素
void stern_insert(sqlist *s,Elemtype e)
{
s->sdata = e;
s->length++;
s->sdata = '\0';
}
//从头部插入元素
void head_insert(sqlist *s, Elemtype e)
{
for (int i = s->length; i > 0; --i)
{
s->sdata = s->sdata;
}
s->sdata = e;
s->length++;
s->sdata = '\0';
}
//从任意位置插入元素
void optional_insert(sqlist *s, Elemtype e, int x)
{
if (x <= s->length)//判断X是否大于length
{
for (int i = s->length; i > x; i--)// 依次将数据后移一位
{
s->sdata = s->sdata;
}
s->sdata = e; // 在指定位置插入 数据
s->length++; // 数据长度加1
s->sdata = '\0';
}
}
//删除元素
intoptional_delete(sqlist *s, Elemtype e)
{
if (s->length ==0)
{
return -1; // 链表中没有元素
}
int x = 0;
//遍历整个结构,找到要删除的数据的位置 返回给x
for (int i = 0; i< s->length;i++)
{
if (s->sdata == e)
{
x = i;
break;
}
else
{
return -1;// 链表中没有你要删除的元素
}
}
for (int i = x; i < s->length; i++)
{
s->sdata = s->sdata;
}
s->length--;
s->sdata = '\0';
return 0;
}
int main()
{
sqlist s;
list_init(&s);
stern_insert(&s, 3);
stern_insert(&s, 4);
stern_insert(&s, 5);
head_insert(&s, 2);
head_insert(&s, 1);
optional_insert(&s, 6, 5);
optional_delete(&s, 2);
return 0;
}
页:
[1]