#include <stdio.h>
#include <stdlib.h>
#include <string.h> struct Array //定义一个数据存储结构
{
int* data;//内存地址
int length;//顺数表长度
int listsize;//顺序表大小
}; typedef struct Array Array; Array* createArray()
{
Array *temp = (Array*)malloc(sizeof(Array)); //顺序表的结构体初始化
if (temp == NULL) //判断内存是否申请成功
{
printf("顺序表初始化失败!\n");
return NULL;
}
temp->data = (int* )malloc(sizeof(int) * ); //申请10个int大小的内存
temp->length = ;
temp->listsize = ;
printf("顺序表创建完成!\n");
return temp;
} int insertArray(Array * arr, int i, int n) //存放数据至顺序表中
{
if (i< || i>arr->length + ) //判断插入的位置是否合法, 只能按顺序插入,
return ; if (arr->length >= arr->listsize) //动态分配内存,如果空间已满申请更大的内存,用realloc在原本大小上扩容
{
arr->data = (int*)realloc(arr->data, (arr->listsize + ) * sizeof(int)); if (arr->data == NULL) return NULL;
arr->listsize += ; }
int k;
for (k = arr->length - ; k >= i - ; k--)
{
arr->data[k + ] = arr->data[k]; }
arr->data[i-] = n;
arr->length++;
return ;
} void Show_Array(Array* arr) //打印顺序表中的元素
{
if (arr->length == )
{
printf("顺序表为空!\n");
}
else
{
printf("顺序表中的元素为:");
for (int i = ; i < arr->length; i++)
{
printf("%d ", arr->data[i]); }
printf("\n"); }
} void Find_Ch_Array(Array* arr,int n) //查找顺序表中第n位置的元素值
{
if (arr->data == NULL)
printf("顺序表为空!\n");
if(arr->length<n)
printf("没有存这么多的数据!\n");
else
printf("第%d个元素的值为:%d\n",n, arr->data[n - ]); } void Set_Ch_Array(Array* arr, int n, int x)
{
if (arr->data == NULL)
printf("顺序表为空!\n");
if (arr->length < n)
printf("没有存这么多的数据!\n");
else
arr->data[n - ] = x;
printf("替换成功!\n"); }

void list_insert_arr(Array* arr,int n) //指定位置插入数据
{
if (arr->data == NULL)
printf("顺序表为空!\n");
if (arr->length < n)
printf("没有存这么多的数据!\n");
else
{
for (int i = 0; i < 10; i++)
{
int nun;
scanf("%d", &nun);
insertArray(arr, n+i, nun);


}


}
}

int main()
{
Array* a=createArray(); for (int i = ; i < ; i++)
{ insertArray(a, i, i + ); }
Show_Array(a); Find_Ch_Array(a, ); system("pause");
return ;
}

C++ 顺序表练习的更多相关文章

  1. jdk顺序表笔记

    一.AbstractCollection 提供了集合的最大实现 继承该类,必须实现size()和iterator(),因为该类操作集合都是通过iterator 二.fail-fast策略 该策略在集合 ...

  2. c++顺序表基本功能

    头文件 #define LIST_MAX_SIZE 5#define LISTINCREMENT 2#include<assert.h>#include<string>temp ...

  3. 数据结构:顺序表(python版)

    顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...

  4. 《数据结构》2.2顺序表(sequence list)

    //顺序表节点的定义 typedef struct { datatype data[MAXSIZE]; //数组容量的上限 int len; //记录最后一个元素的位置,相当于一个指针,表空时len= ...

  5. c数据结构 顺序表和链表 相关操作

    编译器:vs2013 内容: #include "stdafx.h"#include<stdio.h>#include<malloc.h>#include& ...

  6. java顺序表和树的实现

    一.顺序表 1.线性表 //java顺序表的实现,如ArrayList就是用线性表实现的,优点是查找快,缺点是添加或删除要移动很多元素,速度慢 public class SequenceList { ...

  7. 数据结构顺序表删除所有特定元素x

    顺序表类定义: template<class T> class SeqList : { public: SeqList(int mSize); ~SeqList() { delete[] ...

  8. 顺序表C语言版

    #include <stdio.h> /* * 顺序表最多输入N个数 */ #define N 10 #define OK 1 #define ERROR -1 struct sequeu ...

  9. C#线性表之顺序表

    线性表是最简单.最基本.最常用的数据结构.线性表是线性结构的抽象(Abstract), 线性结构的特点是结构中的数据元素之间存在一对一的线性关系. 这种一对一的关系指的是数据元素之间的位置关系,即: ...

  10. C语言 线性表 顺序表结构 实现

    一个能够自动扩容的顺序表 ArrList (GCC编译). #include <stdio.h> #include <stdlib.h> #include <string ...

随机推荐

  1. PXE自动部署工具

    1.工具介绍1.1::本工具主要以图形界面的方式帮助使用者快速部署PXE安装Linux的基础环境环境,(如不需要可忽略相关操作)并且支持自动配置静态IP地址和为H3C设备划分VLAN. 1.2::对于 ...

  2. 网页中常见返回HTTP状态码含义

    在日常网页浏览的过程中大家经常会碰到400,403,404,500,502等HTTP状态码,这些状态码对于一般用户来说出现什么都是一样的,反正就是页面打不开了,但是作为网站开发人员或者从事相关工作者认 ...

  3. @Value默认值填null

    @Value("${topology.position.spout.maxpending:#{null}}") private Integer spoutMaxPending; @ ...

  4. Eclipse 配置Android 开发环境

    1.eclipse安装ADT插件. 地址:http://dl-ssl.google.com/android/eclipse/ 2.安装成功后,提示重启.重新启动后弹出android sdk 的路径选择 ...

  5. Java IO: FileOutputStream

    原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) FileOutputStream可以往文件里写入字节流,它是OutputStream的子类, ...

  6. 吴裕雄--天生自然HTML学习笔记:HTML 图像

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 最简化的DirectX 11开发环境的配置 VS2010

    转载自:http://blog.csdn.net/zhmxy555/article/details/7672101 在编写基于DirectX 11的应用程序之前,我们当然需要在IDE中加入Direct ...

  8. Docker私有仓库管理

    docker load -i registry.tar.gz docker run -d -p 5000:5000 --restart=always --name registry -v /opt/m ...

  9. tomcat一闪而过

    JAVA_HOME should point to a JDK not a JRE |vista tomcat 有的朋友在启动Tomcat的时候会出现问题. 1例如: 手动点击startup.bat ...

  10. [洛谷P4299] 首都

    题目传送门 还是维护子树信息. 但是这里多了一个找重心的操作. 这里有一个关于树重心的结论,据说可以用反证法证明.反正我不会证 就是:新的重心一定在原来两个重心之间的那条树链上. 这样我们逐步缩小搜索 ...