线性表的顺序存储结构(查找、插入、删除等)
来源:互联网 发布:西安seo工资待遇 编辑:程序博客网 时间:2024/05/20 11:25
#include <stdio.h>#include <stdlib.h>#define LIST_INIT_SIZE 100//线性表存储空间的初始化分配量#define LISTINCREMENT 10//线性表存储空间的分配增量(当存储空间不够时要用到)typedef int ElemType;struct List{ ElemType *elem;//存储空间的基地址 int length;//当前线性表的长度 int listsize;//当前分配的存储容量};int InitList(struct List *L){ L->elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));//开辟一个存储空间,并把这块存储空间的基地址赋值给elem if(!L->elem) { return -1;//空间分配失败 } L->length = 10;//当前长度 L->listsize = LIST_INIT_SIZE;//当前分配量 return 0;}/** 插入操作*/int ListInsert(struct List *L,int i,ElemType e){ //判断i是否在范围内 if (i<1 || i>L->length + 1)return -1; //判断存储空间是否够用 if(L->length >= L->listsize){ return -1; } //插入操作 if (i<=L->length) { for (int k=L->length-1; k>=i-1; k--) { L->elem[k+1] = L->elem[k]; } } L->elem[i-1] = e; L->length ++; return 0;}/** * 初始化数据 */void ListInit(struct List *L){ printf("please input data\n"); int x=1; for (int i = 0; i<L->length; i++) { L->elem[i] = x; x*=2; }}int ListDelete(struct List *L,int i,ElemType *e){ //判断删除位置合法 if (i<1||i>L->length) { return -1; } if (L->length ==0) { return -1; } //取出删除元素 *e = L->elem[i-1]; for (int j = i;j<L->length;j++) { L->elem[j-1] = L->elem[j]; } L->length--; return 0;}/** *查找操作 */int Locate(struct List *L,ElemType e){ int i = 0; while (i<L->length&&L->elem[i]!=e) { i++; } if (i<=L->length) { return i+1; }else { return -1; } return 0;}int main(){ struct List L; /** * 初始化线性表 */ InitList(&L); /** * 初始化数据 */ ListInit(&L); //查找 printf("8元素在表中的%d位置\n", Locate(&L, 8)); //插入操作 ListInsert(&L, 1, 3); for (int i =0; i<L.length; i++) { printf("\n%d,",L.elem[i]); } //删除元素 ElemType e; ListDelete(&L, 1, &e); for (int i =0; i<L.length; i++) { printf("\n%d,",L.elem[i]); }}
1 0
- 线性表的顺序存储结构(查找、插入、删除等)
- 编程实现顺序存储结构和链式存储结构线性表的建立、查找、插入、删除等基本操作
- 线性表的顺序储存结构 初始化、查找、删除、插入
- 线性表的基本操作:插入、删除、查找等操作在顺序存储结构和链接存储结构上的算法及其实现方法。 2006-05-05 10:32:58
- 线性表的输入输出插入删除查找(顺序表示)
- 线性表顺序存储结构插入和删除
- 线性表的顺序存储结构及该结构的插入与删除
- 线性表的顺序存储格式基本操作:初始化、插入、删除、查找、打印
- 数据结构之线性表的顺序结构操作2-(删除,插入,查值等)
- 【数据结构作业一】写出顺序表的结构体类型定义及查找、插入、删除算法,并以顺序表作存储结构,实现线性表的插入、删除
- 数据结构之线性表的顺序存储结构(数组)的插入与删除
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
- 线性表顺序存储结构插入和删除的实现 java
- 《数据结构》线性表:链式存储结构实现示例代码二(插入、删除、查找)
- C语言:线性顺序结构(数组)的插入,删除
- 顺序存储结构的插入与删除
- 顺序存储结构的插入与删除
- 顺序存储结构的插入与删除
- 把一个字符串的首字母转成大写,其余为小写。(
- 储存过程
- 文章标题
- HDOJ 4497 GCD and LCM(质因数分解)
- android studio虚拟机两个小问题
- 线性表的顺序存储结构(查找、插入、删除等)
- 设计模式-单例模式
- Android Studio 插件
- 条件熵的辩疑
- OpenJ_Bailian - 1061 青蛙的约会
- 【DM】设计模式再回顾---职责单一+开放-封闭
- COM技术内幕读书笔记————动态链接和组件
- base之string_piece
- 栈之下一较大值二