数据结构之顺序表2
来源:互联网 发布:windows update失败 pe 编辑:程序博客网 时间:2024/06/04 18:46
顺序表上的基本操作:
1.初始化一个线性表(即创建一个空的线性表L)
void initlist(sqlist *L){ L->data=(ElemType *)malloc(sizeof(ElemType));//存储空间的基地址 L-length = 0; //长度为0 L->listsize = INITSIZE; //当前的容量为初始量}
2.求表长操作(计算出顺序表L中的全部元素的个数)
int getlen(sqlist *L){ return (L->length); //返回顺序表L的长度}
3.取元素操作(取出顺序表L中的第i个元素的值)
int getelem(sqlist *L,int i,ElemType e){ if(i<1||i>L->length) return 0; //取元素失败 e = L->data[i-1]; return 1; //取元素 成功}
4.元素定位操作(查找顺序表L中第一个与x值相等的数据元素的位置)
int locate(sqlist *L, ElemType x){ int i=0; while(i<L->length) //i小于顺序表L的长度 if(L->data[i-1] == x) return i+1; else i++; return 0;}
5.插入操作
int insert(sqlist *L,int i, ElemType x){ int j; if(i<1||i>L->length+1) return 0; //参数i无效,返回0 if(L->length == L->listsize) //存储空间不够,需增加一个空间 { L->data=()realloc(L->data,(L- >listsize+1)*sizeof(ElemType)); L->listsize++; } for(j=L->length-1;j>=i-1;j--) L->data[j+1] = L->data[j]; //序号为i的节点及之后的节点后移一位 L->data[i-1] = x; //在序号i处放入节点x L->length++; //顺序表长度增加1 return 1; }
6.删除操作
int delete(sqlist *L,int i, ElemType *e){ int j; if(i<1||i>L->length) return 0; //参数i无效,返回0 *e = L->data[i-1]; //将删除的节点存储在e中 for(j=i;j<L->length;j++) L->data[j-1] L->data[j]; //将i节点及之后节点前移1位 L->length--; //顺序表的长度减1 return 1;}
7.输出操作(输出顺序表L的各数据元素值)
void list(sqlist *L){ int i; for(i=0;i<L->length;i++) { printf("%4d",L->data[i]); } printf("\n");}
未完,待续·································
0 0
- 数据结构之顺序表2
- 数据结构之 顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 数据结构之顺序表
- 极简写作语言-Markdown
- 第8章 创建型模式---单例模式
- Google Japan电面
- 【easyui】jQuery EasyUI Datagrid组件的完整的基础DOM结构
- 切面条
- 数据结构之顺序表2
- oj第九周训练ASCII码排序
- 2016.10.30 Bootstrap.4(组件开始)
- Leetcode #377 Combination Sum IV
- Ubuntu常用命令大全
- 蓝桥杯基础练习十六进制转十进制
- usb驱动的基本结构和函数简介
- 配置安装ionic环境以及遇到的问题
- [Linux]RPM软件包管理