线性表的顺序存储结构的实现及其应用(C/C++实现)
时间:2022-05-07
本文章向大家介绍线性表的顺序存储结构的实现及其应用(C/C++实现),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
存档---
1 #include <stdio.h>
2 #include <stdlib.h>
3 typedef int ElemType;
4 #define MAXSIZE 10
5 #include "SqList.h"
6
7 void main()
8 {
9 SqList myList;
10 int i = 1,x,sum = 0,n;
11 InitList(myList);
12 scanf("%d",&x);
13 while(x!=-1)//输入的数据以-1作为结束标志
14 {
15 if(ListInsert(myList,i,x)==false)
16 {
17 printf("错误!n");
18 return;
19 }
20 i++;
21 scanf("%d",&x);
22 }
23 n = ListLength(myList);
24 for(i = 1;i<=n;i++)
25 {
26 x = GetElem(myList,i);
27 sum = sum+x;
28 }
29 printf("%dn",sum);
30 ClearList(myList);
31 }
1 typedef struct List{
2 ElemType *elem;
3 int length;
4 }SqList;
5
6 void InitList(SqList &L)
7 { //构造一个空的顺序表
8 L.elem = new ElemType[MAXSIZE];
9 L.length = 0;
10 }
11
12 void ClearList(SqList &L)
13 { //清空线性表,不销毁
14 //delete []L.elem;
15 //L.elem = NULL;
16 L.length = 0;
17 }
18
19 int ListLength(SqList L)
20 { //求线性表长度
21 return L.length;
22 }
23
24 bool ListInsert(SqList &L,int i,ElemType e)
25 { //在线性表L中第i个数据元素之前插入新数据元素e
26 if(L.length<MAXSIZE)
27 {
28 for(int j = 1;j<=L.length-i+1;j++)
29 {
30 L.elem[L.length-j+1] = L.elem[L.length-j];
31 }
32 L.elem[i-1] = e;
33 L.length++;
34 return true;
35 }
36 else
37 {
38 return false;
39 }
40 }
41
42 ElemType GetElem(SqList L,int i)
43 { //在线性表L中求序号为i的元素,该元素作为函数返回值
44 if (i<1||i>L.length)
45 {
46 printf("i不在[1..n]范围内");
47 exit(-2);
48 }
49 return L.elem[i-1];
50 }
运行结果如下:
- ASM 翻译系列第二十五弹:ASM 高级知识 When will my rebalance complete
- ASM 翻译系列第二十六弹:ASM 高级知识 Where is my data
- LVS+Keepalived负载均衡主备&双主架构全攻略
- ASM 翻译系列第二十八弹:ASM INTERNAL Partnership and Status Table
- ASM 翻译系列第二十九弹:ASM INTERNAL Free Space Table
- MySql常用30种SQL查询语句优化方法
- RxJS速成
- 会HTML/CSS就可以轻松创建网站
- 区块链银行应用探索(Hyperledger fabric)
- mysql之基本语法
- mysql之索引的工作机制
- Mysql之锁与事务
- 独家 | 教你实现数据集多维可视化(附代码)
- NoSQL | Redis、Memcache、MongoDB特点、区别以及应用场景
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 审阅“史上”最烂的代码
- BeanUtils 是用 Spring 的还是 Apache 的好?
- 一看就会的mysql索引优化(真实案例)
- 【015期】JavaSE面试题(十五):网络IO流
- 算法篇:二分查找基础篇
- 算法篇:双指针之接雨水
- 因用了Insert into select语句,美女同事被开除了!
- 【原创】Java并发编程系列33 | 深入理解线程池(上)
- 算法篇:二分法之k个数之和
- 记一次循环依赖踩坑
- 为什么大家都说 SELECT * 效率低
- 一些恶心的代码片段,吐了....
- 大数据入门:Spark+Kudu的广告业务项目实战笔记(二)
- 给女同事讲完代理后,女同事说:你好棒哦
- 为什么我要从 Windows 切换到 Linux?