数据结构——有序线性表的的插入与删除
来源:互联网 发布:迅雷看看优化版 编辑:程序博客网 时间:2024/06/07 17:23
有序线性表的插入与删除
#include<iostream>#include<stdlib.h># define LIST_INIT_SIZE 100# define LISTINCREMENT 10# define ElemType int# define OVERFLOW -1# define ERROR -1using namespace std;typedef struct { ElemType *elem; int length; int listsize;}SqList;void InitList_Sq(SqList &L){ L.elem = (ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(! L.elem) exit(OVERFLOW); L.length = 0; L.listsize = LIST_INIT_SIZE;}int ListInsert_Sq(SqList &L, int i, ElemType e){ if(i > L.length) { cout << "ERROR"; return ERROR; } if(L.length >= L.listsize) { ElemType *newbase; newbase = (ElemType *)realloc(L.elem,(L.listsize + LISTINCREMENT) * sizeof(ElemType)); if(!newbase) exit(OVERFLOW); L.elem = newbase; L.listsize += LISTINCREMENT; } if(L.length == 0) { L.elem[0] = e; L.length++; return 1; } else { ElemType *p, *q; int wh; for(wh = 0; wh < L.length; wh++) { if( L.elem[wh] > e) break; } q = &L.elem[wh]; for( p = &(L.elem[L.length-1]); p >= q; p--) *(p+1) = *p; *q = e; L.length++; }}int ListDelete_Sq(SqList &L, int W, ElemType E){ if(W < 1 || W > L.length) return ERROR; ElemType *p, *q; p = &(L.elem[W-1]); E = *p; q = L.elem + L.length - 1; for(; p < q; p++) *p = *(p + 1); L.length--; cout << E <<endl; return E;}int main (){ SqList L; InitList_Sq(L); int e; int n; cout << "Please input n:" << endl; cin >> n; cout << "Please input elem:" << endl; for(int i = 0; i < n; i++) { cin >> e; ListInsert_Sq( L, i, e); } cout << "Output the SqList:" << endl; for(int i = 0; i < L.length; i++) cout << L.elem[i] << " "; cout << endl; //------------------insert--------------------// cout << "Input the elem that will be insert:" << endl; int T; cin >> T; ListInsert_Sq( L, n, T); cout << "Output the SqList after insert:" << endl; for(int i = 0; i < L.length; i++) cout << L.elem[i] << " ";; cout << endl; //-----------------delete--------------------// cout << "Input the elem that will be deleted:" << endl; int W; int E; cin >> W; cout << "The " << W <<"th element will be deleted !" << endl; E = ListDelete_Sq( L, W, E); cout << "In the SqList after delete (elem " << E << ")is:"<<endl; for(int i = 0; i < L.length; i++) cout << L.elem[i] << " "; cout << endl; free(L.elem); L.elem = NULL;}
0 0
- 数据结构——有序线性表的的插入与删除
- 数据结构——有序单链表的建立、插入与删除
- 数据结构 P28-29 算法实现 线性表的链式存储结构——链表的查找、插入与删除
- 数据结构——线性表的插入
- 再回首,数据结构——有序线性表的合并
- 数据结构——线性表的建立和有序输出
- 数据结构 线性表 单链表 插入与删除
- 链式线性表的插入与删除
- 线性链表的插入与删除
- 线性表的插入、查找与删除
- 数据结构——线性表的删除
- 数据结构之线性表的顺序存储结构(数组)的插入与删除
- 数据结构 线性表的插入和删除运算
- 【数据结构】顺序线性表的插入、删除、合并实现
- 数据结构-顺序线性表的初始化,插入,删除
- 数据结构 P22-24 算法实现 线性表的插入与删除
- 线性表的 插入 删除
- 线性表的插入删除
- [水题]HDOJ1020
- 模板类的继承
- Caused by: java.lang.IllegalArgumentException: addChild: Child name 'localhost' is not unique
- easy ui jquery 添加时样式出现问题
- jquery+ajax简单例子及jquery事件
- 数据结构——有序线性表的的插入与删除
- iOS sqlite 数据库加密
- A problem of sorting----(BestCoder Round #54 (div.2))
- react-native试玩(33)-状态栏API
- CSS 最核心的几个概念
- Liner(分段线性插值)
- Java 利用 HttpURLConnection 读取页面 返回字节流(生成静态页面)
- android开发记录
- BeanFactory接口包含基本方法