线性表的顺序存储结构
来源:互联网 发布:sql where 优先级 编辑:程序博客网 时间:2024/05/16 02:06
</pre>顺序表的建立,查找,插入,删除。。。。<pre name="code" class="html"># include <stdio.h># include <stdlib.h>typedef struct Arr{int * pBase;int len;} Sqlist; // struct Arr Sqlistvoid Creat_list(Sqlist * pArr, int length); //创建,bool Empty_list(Sqlist pArr); //空void Printf_list(Sqlist pArr, int length);//输出void Get_list1(Sqlist pArr);//按顺序查找int Get_list2(Sqlist pArr, int );//按值查找void Insert_list(Sqlist pArr,int loc, int val); //顺序表的插入 位置 值void Sqlist_intersect(Sqlist A, Sqlist B, Sqlist * C);//求顺序表A B的交集int main(void){Sqlist A, B, C;//pArrC.pBase = NULL; int length; //loc, valprintf("请输入线性表的长度:"); scanf("%d", &length);A.len = B.len = length; Creat_list(&A, length);Creat_list(&B, length);//Creat_list(&pArr, length);//Printf_list(pArr, length);//可以写成指针,也可写成普通变量// Get_list1(pArr);//printf("输入要查找的值:");//scanf("%d", &val);//if ( int k = Get_list2(pArr, val) )···//printf("该数值的位置是:%d\n", k);//else //printf("该数值不存在\n");//printf("输入插入的位置和值:");//scanf("%d %d", &loc, &val);//Insert_list(pArr , loc, val);//for (int i=0; i<length+1; ++i)//printf("%d ", pArr.pBase[i]);//printf("\n");Sqlist_intersect(A, B, &C);return 0;}void Creat_list(Sqlist * pArr, int length){pArr->pBase = (int *)malloc(sizeof(int) * length);if (pArr->pBase == NULL){printf("动态内存分配失败!\n");exit(-1);}for (int i=0; i<length; ++i){scanf("%d", &pArr->pBase[i]);}}bool Empty_list(Sqlist pArr){if (pArr.len == 0)return true;elsereturn false;}void Get_list1(Sqlist pArr){int i, val;printf("输入要查找元素的位置:");scanf("%d", &i);if (i<1 || i>pArr.len){printf("输入位置非法\n");return ;}elseval = pArr.pBase[i-1];printf("%d\n", val);return ;}int Get_list2(Sqlist pArr, int val){for (int i=0; i<pArr.len; ++i){if (val == pArr.pBase[i])return i+1;}return 0;} void Printf_list(Sqlist pArr, int length){int i;if ( Empty_list(pArr) ){printf("线性表为空\n");}else{for (i=0; i<pArr.len; ++i){printf("%d ", pArr.pBase[i]);}printf("\n");}}void Insert_list(Sqlist pArr, int loc, int val){if (loc<1 || loc>pArr.len+1)printf("插入失败:\n");for (int i=pArr.len; i>=loc; --i)pArr.pBase[i] = pArr.pBase[i-1];pArr.pBase[loc-1] = val;return;}void Sqlist_intersect(Sqlist A, Sqlist B, Sqlist *C){int k = 0;for (int i=0; i<A.len; ++i){for (int j=0; j<B.len; ++j){if ((A.pBase[i] == B.pBase[j])){C->pBase[k] = A.pBase[i];k++;}}}C->len = k;Printf_list(*C, k);}
0 0
- 线性表的顺序结构存储
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 顺序存储结构的线性表
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 【数据结构】线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表顺序存储结构的优缺点
- 线性表顺序存储结构的优缺点
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- Cash Machine(多重背包)
- Android对Linux内核的改动你知道多少?
- 最新的hadoop数据分析平台
- VC++下编译出极小的程序
- VMware 虚拟机共享上网(NAT)方式
- 线性表的顺序存储结构
- psql: FATAL: role "root" is not permitted to log in
- Linux 命令行 发送邮件
- jsp中引用的jstl 和fmt标签
- Android:点击返回键两次退出程序
- HDU-1171 Big Event in HDU
- .owner = THIS_MODULE,为什么加“点”
- LeetCode题目详解——Binary Tree Postorder Traversal
- 三十二:基于XMPP聊天会议室(2)