大家好,我是执念斩长河。一个愿与亿万努力者结伴同行的23级408考研党。今天非常开心的运行天勤的顺序表算法操作集,特此整理在这个博文里面。博文涉及天勤书籍上的一些基本操作,主要有线性表定义、查找元素、删除元素、遍历元素、初始化元素。特别精彩!
1.数据结构算法操作集定义
大家结合书籍,如果没书可以先收藏。今天2021年10月16日适合学习。
void insertX(Sqlist &L,int x);//将x插入顺序表中
int LocateElemX(Sqlist L,int x);//查找第一个比x大的元素
int LocateElemE(Sqlist L,int e);//查找与e相等元素
int insertE(Sqlist &L,int p,int e);//插入一个元素
int listDelete(Sqlist &L,int p,int &e);//删除L中的元素
void InitList(Sqlist &L);//初始化length
int GetElem(Sqlist L,int p,int &e);//用e返回L中p位置上的元素
2.实验效果
3.完整代码
#include<stdio.h>
#include<stdlib.h>
#define maxSize 100
typedef struct {
int data[maxSize];
int length;
}Sqlist;
int LocateElemX(Sqlist L,int x)
{
int i;
for(i=1;i<=L.length;i++)
{
if(x<L.data[i])
return i;
}
return i;
}
//将x插入顺序表中
void insertX(Sqlist &L,int x)
{
int p,i;
p = LocateElemX(L,x);
for(i=L.length;i>=p;i--)
L.data[i+1] = L.data[i];
L.data[p] = x;
L.length++;
}
//查找与e等值的元素
int LocateElemE(Sqlist L,int e)
{
int i;
for(i=1;i<=L.length;i++)
if(L.data[i]==e)
return i;
return 0;
}
int insertE(Sqlist &L,int p,int e)
{
int i;
if(p<1 || p>L.length+1 || L.length == maxSize - 1)
return 0;
for(i=L.length;i>=p;i--)
L.data[i+1] = L.data[i];
L.data[p] = e;
L.length++;
return 1;
}
int listDelete(Sqlist &L,int p,int &e)
{
int i;
if(p<1 || p>L.length )
return 0;
e = L.data[p];
for(i=p;i<L.length;++i)
L.data[i] = L.data[i+1];
--(L.length);
return 1;
}
void InitList(Sqlist &L)
{
L.length = 0;
}
//用e返回L中p位置上的元素
int GetElem(Sqlist L,int p,int &e)
{
if(p < 1|| p>L.length)
return 0;
e = L.data[p];
return 1;
}
int main()
{
//创建L
Sqlist L;
//增加L
InitList(L);
insertX(L,5);
insertX(L,7);
//查找L中的5
int pos = LocateElemE(L,5);
printf("find 5:%d\n",L.data[pos]);
//删除L中的5
int flag = listDelete(L,1,pos);
printf("1 is success:%d\n",flag);
//遍历L
for(int i=1;i<=L.length;i++)
printf("%d ",L.data[i]);
return 0;
}
4.总结
一开始初始化,才识学浅卡了一会,然后测试其他函数的时候,根据书上定义即可。没有特别难的难点,如果有疑问可以在下方留言。我是执念斩长河,一个愿与亿万努力者结伴同行的考研党。