正式开启数据结构的复习 我会在这几个月把数据结构考到的算法程序都发布,谢谢大家的观看 后续还会更新更多内容 可以关注一波哦!! 附上 球球另外两篇博文的连接
用C语言建立 线性表## 指针法
单链表(线性链表)的建立与基础
**文章包含四部分** 1. 结构体 2. 自定义函数及截图 3. 总代码 结构体 typedef struct Sqlite//建立结构体 { int data[maxsize];//数组 int length;//长度 }SQlite;` 自定义的函数 void init_sqlite(SQlite &L);//初始化函数 void insert(SQlite &L,int e);//插入函数 void del(SQlite &L,int p);//删除函数 int findElem(SQlite L,int x);//寻找插入位置函数 void sort_L(SQlite &L);// 选择排序 小到大 void Printing(SQlite L);//输出 顺序表 执行截图 完整程序 #include<iostream> #include<stdlib.h> using namespace std; #define maxsize 100 typedef struct Sqlite//建立结构体 { int data[maxsize]; int length; }SQlite; void init_sqlite(SQlite &L);//初始化函数 void insert(SQlite &L,int e);//插入函数 void del(SQlite &L,int p);//删除函数 int findElem(SQlite L,int x);//寻找插入位置函数 void sort_L(SQlite &L);// 选择排序 小到大 void Printing(SQlite L);//输出 顺序表 void init_sqlite(SQlite &L)//初始化顺序表 输入8个数 { printf("输入插入的8个元素:"); L.length=8; //想初始化输入几个就改为几,我输入八个初始 for(int i=0;i<L.length;i++) { scanf("%d",&L.data[i]); } } void insert_sqlite(SQlite &L,int e)//插入 e是插入的值 {//找到第一个比e大的值的位置 此位置及之后的数全部向后挪 然后 插入e int p=findElem(L,e); for(int i=L.length;i>p;i--) { L.data[i]=L.data[i-1]; } L.data[p]=e; L.length+=1; } void del(SQlite &L,int p)//删除第p个值 { //找到第p个数 然后删除它 它后面的全部向前挪 length减1 if(p>L.length) { printf("太长了呦!!!\n"); return; } if(L.length==1) { L.length=0; return; } for(int i=p-1;i<L.length-1;i++) //L.length >1时 { L.data[i-1]=L.data[i]; } L.length-=1; printf("删除后的顺序表:"); Printing(L); } int findElem(SQlite L,int x)//x为值 找到位置 然后配合 插入函数 实现插入 { for(int i=0;i<L.length;i++) { if(L.data[i]>x) { return i; } } return L.length; } void sort_L(SQlite &L)//这里使用选择排序 { int i,j,k,temp=0; for(i=0;i<L.length;i++) { k=i; for(j=i+1;j<L.length;j++) { if(L.data[k] > L.data[j]) { k=j; } } temp=L.data[i]; L.data[i]=L.data[k]; L.data[k]=temp; } printf("排序后的顺序表:"); Printing(L); } void Printing(SQlite L)//输出顺序表的函数 { for(int i=0;i<L.length;i++) printf("%d ",L.data[i]); printf("\n"); } int main() { SQlite L; init_sqlite(L); //初始化 sort_L(L);//排序 int e; printf("请输入插入的元素:"); scanf("%d",&e); insert_sqlite(L,e); Printing(L); printf("输入删除第几个:"); scanf("%d",&e); del(L,e);//删除 return 0; }