顺序表的初始化、插入、删除
来源:互联网 发布:sketch windows 编辑:程序博客网 时间:2024/06/05 13:28
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cstdlib>//#include <conio.h>using namespace std;typedef struct{ int data; char name[100];} ElemType;typedef int Status;#define OK 1#define OVERFLOW -2#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct{ ElemType *elem; int length; int listsize;} Sqlist;Status InitList(Sqlist * L);Status ListInsert(Sqlist *L,int i,ElemType e);Status ListDelete(Sqlist *L,int i,ElemType *e);Statys LocateElem(Sqlist L,ElemType e);Status InitList(Sqlist * L) //线性表的初始化{ L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem) { cout<<"OVERFLOW"<<endl; return ERROR; } L->length=0; L->listsize=LIST_INIT_SIZE; return OK;}Status ListInsert(Sqlist *L,int i,ElemType e) //线性表的插入{ ElemType *newbase,*q,*p; int j; if(i<1||i>L->length+1) return ERROR; if(L->length>=L->listsize) { newbase=(ElemType *)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase) { cout<<"空间已满"<<endl; return ERROR; } L->elem=newbase; L->listsize=L->listsize+LISTINCREMENT; } for(j=(L->length);j>=i;j--) L->elem[j+1]=L->elem[j]; L->elem[i-1]=e; ++L->length; return OK;}Status ListDelete(Sqlist *L,int i,ElemType *e) //线性表的删除{ ElemType *p,*q; int j; if(i<1||i>L->length) return ERROR; *e=L->elem[i-1]; for(j=i;j<L->length;j++) L->elem[j-1]=L->elem[j]; --L->length; return OK;}Statys LocateElem(Sqlist L,ElemType e) //查找{ ElemType *p; int i=1; p=L.elem; while(i<=L.length&&(*p++)!=e) ++i; if(i<=L.length) return i; else return 0;}int main(){ Sqlist Lst; int n,m; ElemType e; cout<<"用户自己定义n组数据:"<<endl; cin>>n; //用户自己定义n组数据 cout<<"用户自己定义删除的m"<<endl; cin>>m; //用户自己定义删除 m if(InitList(&Lst)==OK) { for(int i=1; i<=n; i++) { cin>>e.data>>e.name; if(ListInsert(&Lst,i,e)!=OK) break; } } cout<<endl; for(int i=0; i<Lst.length; i++) printf("i,e.data=%d,%d %s\n",i+1,Lst.elem[i].data,Lst.elem[i].name); getchar(); getchar(); if(ListDelete(&Lst,m,&e)==OK) { printf("delete_elem.data=%d %s\n",e.data,e.name); } getchar(); for(int i=0; i<Lst.length; i++) printf("i,e.data=%d,%d %s\n",i+1,Lst.elem[i].data,Lst.elem[i].name); return 0;}
阅读全文
0 1
- 顺序表的初始化、删除、插入
- 顺序表的初始化、插入、删除
- 顺序表的生成、初始化、插入、删除
- 顺序表的初始化、插入、删除
- C语言实现顺序表的初始化,插入,删除,查找
- 线性表的顺序储存结构 初始化、查找、删除、插入
- 数据结构-顺序线性表的初始化,插入,删除
- 顺序栈的初始化,建立,插入,查找,删除
- 顺序队列的初始化,建立,插入,查找,删除
- 顺序串的初始化,建立,插入,查找,删除
- 顺序栈的初始化,建立,插入,查找,删除
- 顺序栈的初始化,建立,插入,查找,删除
- 顺序队列的初始化,建立,插入,查找,删除。
- 顺序栈和链栈的初始化插入和删除
- 数据结构-顺序表得实现-删除插入初始化打印
- 结构体顺序表的创建、初始化、插入、按值查找、删除的代码
- 线性表之顺序表的创建、初始化、查找、删除、插入和合并
- 数据结构线性表之顺序表的基本操作插入、删除、遍历、初始化
- spring简介
- 数据结构——顺序(升序)链表(增加,删除,集合的并,交,差)
- 1017. A除以B (20)
- VC6.0——(应用程序无法正常启动0xc0000142)
- 数学建模专栏 | 第十一篇:MATLAB CUMCM真题求解实例二:优化型
- 顺序表的初始化、插入、删除
- DNS BIND之recursion递归
- js各种宽高的总结
- python的五大数据类型
- AutoCAD 2018 64位/32位 简体中文免费版
- Spring Cloud Eureka-服务注册、消费、断路
- Kolakoski序列及应用拓展
- 各浏览器中自定义滚动条的样式
- 测试用例的作用