顺序表的前驱与后继
来源:互联网 发布:淘宝怎么注册新账号 编辑:程序博客网 时间:2024/04/27 18:02
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status; typedef int ElemType;typedef struct {ElemType *elem;int length;int listsize;}SqList;Status 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;return OK;}int ListLength(SqList L) { // 初始条件:顺序线性表L已存在。操作结果:返回L中数据元素个数 return L.length; } int GetElem(SqList &L,int i,ElemType &e){if(i>L.length||i<1)exit(OVERFLOW);e=L.elem[i-1];return OK;} int PriorElem(SqList &L,int i,ElemType &e){int j;for(j=1;j<L.length;j++){if(i==L.elem[j-1])e=L.elem[j-2];}return OK;} int NextElem(SqList &L,int i,ElemType &e){ int j; for(j=1;j<L.length;j++) {if(i==L.elem[j-1])e=L.elem[j]; } return OK; }Status ListInsert_Sq(SqList &L,int i,ElemType e){ElemType *newbase,*p,*q;if(i>L.length+1||i<1)return ERROR;if(L.length>=L.listsize){newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;} //q=L.elem+i-1; //插入位置 等价于 q=&(L.elem [i-1]);for(p=L.elem+L.length-1;p>=q;--p)*(p+1)=*p;*q=e;++L.length;return OK;}Status ListDelect_Sq(SqList &L,int i,ElemType &e){ElemType *p,*q;if(i<1||i>L.length)return ERROR;p=L.elem+i-1; e=*p; q=L.elem+L.length-1;for(++p;p<=q;++p){*(p-1)=*p;}L.length--;return OK;}void ListPrint(SqList L)//线性表输出{ElemType *p;printf("线性表中的元素为:\n");for(p=L.elem;p<L.elem+L.length;p++){ printf("%d",*p);}}void main(){SqList L;int i,j;ElemType e;InitList_Sq(L);printf("input five data \n");for(i=1;i<=5;i++){scanf("%d",&e);ListInsert_Sq(L,i,e);}ListPrint(L);/*printf("输入一个数");scanf("%d",&j);PriorElem(L,j,e);printf("%d",e);*/printf("输入一个数");scanf("%d",&j);NextElem(L,j,e);printf("%d",e);}
阅读全文
0 0
- 顺序表的前驱与后继
- 二叉排序树的前驱后继
- 二叉线索树,寻找前驱与后继
- 最大最小值以及前驱后继操作最坏情况都为O(1)的顺序统计树
- 二叉树的前驱和后继
- 二叉树遍历的前驱和后继
- 二查排序树的基本操作(插入,删除,找前驱与后继)
- 二叉查找树查找后继,前驱的问题
- 线索二叉树前驱后继的查询算法(C 语言)
- 二叉树遍历的前驱和后继规则说明
- 二叉树前驱后继的查找(这个容易理解)
- 二叉树的线索化及其前驱后继查找
- 分析线索二叉树的前驱、后继求法
- 求二叉搜索树任一节点的前驱后继节点
- 关于二叉树遍历的前驱后继规则
- 查找线索二叉树的前驱和后继
- [数据结构] 二叉搜索树 前驱和后继的经验总结
- 线索二叉树中查找前驱和后继的问题
- Android面试相关之基础知识
- mysql启动和创建用户
- 彻底搞懂 字符 编码 GBK 和 UTF8
- 大话设计模式----迪米特法则
- 中文乱码问题的各种对应的解决方案
- 顺序表的前驱与后继
- 随笔
- ....
- 山东大学计算机网络实验——Protocol Layers
- Mybatis之resultMap详解
- MQTT入门篇
- 两个顺序表合并成一个顺序表
- 《疯狂Java讲义 第3版》学习记录
- 负载均衡集群企业级应用实战-LVS-nat模式: