【数据结构】实验项目:顺序表,也就那么回事

目录

嗨,这里是狐狸~~

简介

顺序表的结构定义:

声明顺序表类型变量:

实验内容:

实验说明 :

实验思路

1、 输入一组整型元素序列(不少于10个),建立顺序表。 

2.  在该顺序表中进行顺序查找某一元素,查找成功返回 1,否则返回 0。 

3.判断该顺序表中元素是否对称,对称返回 1,否则返回 0。

    symmetry.h  

4.  实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 

5.  输入整型元素序列(不少于10个),利用有序表插入算法建立一个有序表。

6.  利用算法5建立两个非递减有序表,并把它们合并成一个非递减有序表。       

7.  在主函数中设计一个简单菜单,调用上述算法。

代码结构:

运行截图:

总结


啤酒几杯,废话两行,如果你认真听及,每个字眼都是我想你。

嗨,这里是狐狸~~

今天是周末,加班了,又见面了,现在是2021年12月11日的晚上21点21分,我正在屏幕前打出这行字,距离2022年还有20天,20天之后2021就永远离我们而去了,怎么突然网抑云了,回到正题,现在来给大家分享一个数据结构的实验项目,这个也是数据结构里一个非常经典的知识了,希望大家可以耐心享用。

简介

顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序储存结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。 

顺序表的结构定义:

#define maxlen 50 //定义顺序表中元素个数最多有几个

typedef struct

{

elementtype data[maxlen]; //elementtype是元素的类型 依具体情况而定

int listlen; //便于时刻了解顺序表里元素的个数

}seqlist; //顺序表的名称 不妨为seqlist

声明顺序表类型变量:

seqlist L,L1;

如顺序表的每个结点占用len个内存单元,用location (ki)表示顺序表中第i个结点ki所占内存空间的第1个单元的地址。则有如下的关系:location (ki+1) = location (ki) +len

location (ki) = location(k1) + (i-1)len

存储结构要体现数据的逻辑结构,顺序表的存储结构中,内存中物理地址相邻的结点一定具有顺序表中的逻辑关系。

实验内容:

1.输入一组整型元素序列(不少于10个),建立顺序表。
2.在该顺序表中进行顺序查找某一元素,查找成功返回 1,否则返回 0。
3.判断该顺序表中元素是否对称,对称返回 1,否则返回 0。
4.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。
5.输入整型元素序列(不少于10个),利用有序表插入算法建立一个有序表。
6.利用算法5建立两个非递减有序表,并把它们合并成一个非递减有序表。
7.在主函数中设计一个简单菜单,调用上述算法。

实验说明 :

  1. 算法 1至算法6的有关函数用头文件方式存储,主函数包含该头文件。
  2. 存储定义
   const  int  MAXSIZE=15 ;   // 表中元素的最大个数 
   typedef  int  ElemType;   // 元素类型 
   typedef  struct  list  
    { 
      ElemType  elem[MAXSIZE];  // 静态分配 
      int  length;    // 表的实际长度 
    } SqList ;        // 顺序表的类型名 

实验思路

1、 输入一组整型元素序列(不少于10个),建立顺序表。 

         create_arr.h

#include"head.h"
void create_arr(ElemType elem[], int n)
{
cout << "请输入" << n << "个整数:" << endl;
for (int i = 0; i < n; i++)
cin >> elem[i];
cout << "建立的顺序表为:[";
for (int i = 0; i < n; i++)
cout <<elem[i] << ",";
cout << "]";
cout << endl;
}

  • 10
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值