公司网站建设论文结束语,建设一个棋牌类网站,广告设计图片模板,邮箱号码大全嵌入式学习--线性表Day01 顺序表 1.1数组的插入、删除操作 1.2修改为last版本 1.3顺序表相关操作 顺序表、单向链表、单向循环链表、双向链表、双向循环链表、顺序栈、链式栈、循环队列#xff08;顺序队列#xff09;、链式队列 1#xff09;逻辑结构#xff1a;线性结构 … 嵌入式学习--线性表Day01 顺序表 1.1数组的插入、删除操作 1.2修改为last版本 1.3顺序表相关操作 顺序表、单向链表、单向循环链表、双向链表、双向循环链表、顺序栈、链式栈、循环队列顺序队列、链式队列 1逻辑结构线性结构 2存储结构顺序、链式 3特点一对一每一个节点最多有一个前驱和一个后继首节点无前驱尾节点无后继 顺序表 特点内存连续数组 1逻辑结构 线性结构 2存储结构 顺序存储结构 3操作 增删改查 1.1数组的插入、删除操作 函数名命名规则 下滑线法create_empty_seqlist 小驼峰法createEmptySeqList 大驼峰法CreateEmptySeqList 练习 int a[100]{1,2,3,4,5,6,7,8}; //1)向数组的第几个位置插入数据 int *p //保存的数组的首地址 int n//n代表的是数组中有效的元素个数非数组的长度size 1008 int post;//位置 代表的是第几个位置数组元素下标 位置的编号从0开始 position int data;//插入到数组中的数据 void insertIntoA (int *p,int post,int data,int n) { //1.将n-1位置到post位置的数据整体向后移动一位 //2.将新数据data赋值到post位置 } //删除数组指定位置的数据 void deleteFromA(int *p, int n, int post) { //1.将post1位置----》n-1位置所有数据整体向前移动一个位置覆盖删除 } arr.c #include stdio.h
//1)向数组的第几个位置插入数据
void insertIntoA(int *p, int post, int data, int n)
{int i;// 1.将n-1位置到post位置的数据整体向后移动一位for(in-1;ipost;i--)p[i1]p[i];// 2.将新数据data赋值到post位置p[post] data;
}
// 2删除数组指定位置的数据
void deleteFromA(int *p, int n, int post)
{int i;// 1.将post1位置----》n-1位置所有数据整体向前移动一个位置覆盖删除for(ipost1;in-1;i)p[i-1]p[i];
}
//3)遍历输出A
void showA(int *p,int n)
{for(int i0;in;i)printf(%d ,p[i]);printf(\n);
}int main(int argc, char const *argv[])
{int a[100] {1, 2, 3, 4, 5, 6, 7, 8};showA(a,8);insertIntoA(a,2,300,8);showA(a,9);deleteFromA(a,9,2);showA(a,8);return 0;
}1.2修改为last版本 #include stdio.h
int last 7;//n-1最后一个有效元素下标//1)向数组的第几个位置插入数据
void insertIntoA(int *p, int post, int data)
{int i;// 1.将last位置到post位置的数据整体向后移动一位for(ilast;ipost;i--)p[i1]p[i];// 2.将新数据data赋值到post位置p[post] data;//3. 最后一个有效元素下标1last;
}
// 2删除数组指定位置的数据
void deleteFromA(int *p,int post)
{int i;// 1.将post1位置----》last位置所有数据整体向前移动一个位置覆盖删除for(ipost1;ilast;i)p[i-1]p[i];//2. 最后一个有效元素下标-1last--;
}
//3)遍历输出A
void showA(int *p)
{for(int i0;ilast;i)printf(%d ,p[i]);printf(\n);
}int main(int argc, char const *argv[])
{int a[100] {1, 2, 3, 4, 5, 6, 7, 8};showA(a);insertIntoA(a,2,300);showA(a);deleteFromA(a,2);showA(a);return 0;
}1.3顺序表相关操作 #ifndef _SEQLIST_H__
#define _SEQLIST_H__
#include stdio.h
#include stdlib.h#define N 5
typedef struct seq
{int data[N];int last;
}seqlist_t;//1.创建一个空的顺序表
seqlist_t *CreateEpSeqlist();//返回的是申请空间的首地址
//2.向顺序表的指定位置插入数据
int InsertIntoSeqlist(seqlist_t *p, int post,int data);//post第几个位置data插入的数据
//3.遍历顺序表sequence 顺序 list 表
void ShowSeqlist(seqlist_t *p);
//4.判断顺序表是否为满,满返回 未满返回
int IsFullSeqlist(seqlist_t *p);
//5.判断顺序表是否为空
int IsEpSeqlist(seqlist_t *p);
//6.删除顺序表中指定位置的数据post删除位置
int DeletePostSeqlist(seqlist_t *p, int post);
//7.清空顺序表
void ClearSeqList(seqlist_t *p);
//8.修改指定位置的数据
int ChangePostSeqList(seqlist_t *p,int post,int data);//post被修改的位置data修改成的数据
//9.查找指定数据出现的位置
int SearchDataSeqList(seqlist_t *p,int data);//data代表被查找的数据#endif