顺序表的插入与输出
来源:互联网 发布:java string类排序 编辑:程序博客网 时间:2024/05/26 08:43
#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;}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("输入要删除的位置\n");scanf("%d",&j);ListDelect_Sq(L,j,e);printf("输出被删除的元素");printf("%d",e);ListPrint(L);*/printf("input a data:\n");scanf("%d",&j);GetElem(L,j,e);printf("%d",e);}
阅读全文
0 0
- 顺序表的插入与输出
- 顺序表的创建插入与删除
- 顺序表的插入与删除
- 顺序表的插入
- 顺序表的插入
- 顺序表的插入
- 数据结构:线性表(顺序存储)顺序表类(实现顺序表的创建,输出,插入,删除功能)
- 顺序存储---链表的插入与删除。
- 顺序表的实现以及简单的 插入,删除,查找,输出操作
- <<与++的问题运算与输出顺序
- LinkedHashMap保证MAP按照插入的顺序输出
- 双向链表的正位序插入与输出
- 顺序存储结构的插入与删除
- 顺序存储结构的插入与删除
- 顺序存储结构的插入与删除
- 顺序表的插入运算
- 【应用】顺序表的插入
- 有序顺序表的插入
- JavaScript 函数
- 11.4模拟赛总结
- MyBatis中的mapper.xml文件需要注意的
- mybatis 延迟加载
- SDImageCache缓存图片例子
- 顺序表的插入与输出
- JavaScript实现简单的广告滚动条
- jQuery获取选中的radio值的方法
- Protocol Buffers的入门加实践
- 数据结构实验之二叉树七:叶子问题
- 数据库存储过程的一点积累
- hdfs2.6.2源码学习:Day2-DataNode启动流程分析
- 递归与非递归的比较
- 随想录(你所不知道的交叉编译器)