线性表的顺序存储
2015-07-22 13:25
225 查看
线性表的顺序存储--->用内存中一块地址连续的存储空间按顺序存储线性表中各个元素,在逻辑上相邻的数据元素在物理存储位置上也是相邻的,顺序表是一种随机存取结构。
常有的操作有一次下:
可以根据自己的需要修改内部代码。
常有的操作有一次下:
typedef int ElemType; #define MAXSIZE 127 #define OVERFLOW 1 #define ERROR 2 #define TRUE 0 #define FALSE -1 typedef struct{ ElemType elem[MAXSIZE]; int length; }SeqList; //顺序表的初始化 void Init_SeqList(SeqList *L){ L->length=0; } //顺序表插入元素 int Insert_SeqList(SeqList *L,int i,ElemType x){//i 插入位置,x插入值 int j; if(L->length==MAXSIZE-1){ // [0]下标不存储内容,表空间已满,不能插入 printf("表满\n"); return OVERFLOW; } if( i<1 || i>L->length+1){//检查插入位置的正确性 printf("位置错"); return ERROR; } for(j=L->length;j>=i;j--) L->elem[j+1]=L->elem[j]; //向后移动,腾出i的空间 L->elem[i]=x; L->length++; return TRUE; } //顺序表的删除 int Delete_SeqList(SeqList *L,int i){//删除表中第i个元素,若表为空或不存在指定元素,则返回ERROR int j; if(i<1 || i>L->length){ //检查空表及删除位置的合法性 printf("不存在第%d个元素",i); return ERROR; } for(j=i;j<=L->length-1;j++) L->elem[j]=L->elem[j+1]; //向前移动,覆盖i的值 L->length--; return TRUE; //删除成功 } //顺序表中按值查找 int Location_SeqList(SeqList *L,ElemType x){ //返回查找到的位置 int i=1; while(i<=L->length && L->elem[i] !=x) i++; if(i>L->length) return FALSE; //查找失败 else return i; }
可以根据自己的需要修改内部代码。
相关文章推荐
- java线性表排序示例分享
- php线性表的入栈与出栈实例分析
- C++语言实现线性表之数组实例
- C语言线性表的顺序表示与实现实例详解
- C++语言实现线性表之链表实例
- Go语言实现顺序存储的线性表实例
- 利用线性表的顺序结构求集合的并、交、差、补(C语言实现)
- 结构之美:定义一个线性表
- 结构之美:线性表的查找、插入与删除操作
- 线性表的概念、结构与基本操作
- 结构之美:线性表的链式存储结构——链表
- 线性表的几个链式储存结构介绍
- 数据结构_线性表
- 深入分析 Linux 内核链表
- 第03话:线性表的顺序存储结构
- 第02话:线性表的抽象数据类型ADT定义
- 第01话:线性表的概念与定义
- 线性表-顺序表-数据结构java版
- 大学数据结构(c++版) 王红梅版 疑惑——第二章
- 数据结构 第三季(part 1)