C++ 顺序表练习
#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++ 顺序表练习的更多相关文章
- jdk顺序表笔记
一.AbstractCollection 提供了集合的最大实现 继承该类,必须实现size()和iterator(),因为该类操作集合都是通过iterator 二.fail-fast策略 该策略在集合 ...
- c++顺序表基本功能
头文件 #define LIST_MAX_SIZE 5#define LISTINCREMENT 2#include<assert.h>#include<string>temp ...
- 数据结构:顺序表(python版)
顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...
- 《数据结构》2.2顺序表(sequence list)
//顺序表节点的定义 typedef struct { datatype data[MAXSIZE]; //数组容量的上限 int len; //记录最后一个元素的位置,相当于一个指针,表空时len= ...
- c数据结构 顺序表和链表 相关操作
编译器:vs2013 内容: #include "stdafx.h"#include<stdio.h>#include<malloc.h>#include& ...
- java顺序表和树的实现
一.顺序表 1.线性表 //java顺序表的实现,如ArrayList就是用线性表实现的,优点是查找快,缺点是添加或删除要移动很多元素,速度慢 public class SequenceList { ...
- 数据结构顺序表删除所有特定元素x
顺序表类定义: template<class T> class SeqList : { public: SeqList(int mSize); ~SeqList() { delete[] ...
- 顺序表C语言版
#include <stdio.h> /* * 顺序表最多输入N个数 */ #define N 10 #define OK 1 #define ERROR -1 struct sequeu ...
- C#线性表之顺序表
线性表是最简单.最基本.最常用的数据结构.线性表是线性结构的抽象(Abstract), 线性结构的特点是结构中的数据元素之间存在一对一的线性关系. 这种一对一的关系指的是数据元素之间的位置关系,即: ...
- C语言 线性表 顺序表结构 实现
一个能够自动扩容的顺序表 ArrList (GCC编译). #include <stdio.h> #include <stdlib.h> #include <string ...
随机推荐
- 限制IP每分钟访问10次
转载:https://www.jianshu.com/p/d1326ab657ff IP请求限制,之前用过redis的set设置时间戳一分钟过期:也用过nginx的IP限流配置.前者,没法解决“用户在 ...
- FFT(快速傅里叶变换) 模板
洛谷 P3803 [模板]多项式乘法(FFT)传送门 存个板子,完全弄懂之后找机会再写个详解. #include<cstdio> #include<cmath> struct ...
- python的拆包(扫盲)
什么是拆包 拆包: 对于函数中的多个返回数据, 去掉元组, 列表 或者字典 直接获取里面数据的过程. 怎么拆包 1) 对列表进行拆包 my_list = [1, 3.14, "hello&q ...
- 在腾讯云服务器上安装JDK+Tomcat并启动tomcat
由于Java web项目需要使用到tomcat所以决定在腾讯云服务器(centos7.X)上安装JDK和tomcat,来部署我们的项目. 准备工具: 云服务器:centos7.x+ 本地连接服务器:X ...
- 利用Load命令将本地文本里面的数据导入到MySQL数据库
摘要:在使用MySQL是我们可能会遇到要向我们的表中插入大量的数据如果都使用以下的语句在命令行输入有点不太切实际,幸好MySQL为我们提供了LOAD命令可以批量的从本地文件向MySQL表中导入数据! ...
- TCP 的三次握手和四次挥手
参考资料: 1.TCP的三次握手与四次挥手理解及面试题: 2.Http协议三次握手和四次挥手: 3.TCP通信的三次握手和四次撒手的详细流程(顿悟) 前置: 序号(也称序列号) - Sequence ...
- spring+mybatis+mysql5.7实现读写分离,主从复制
申明:请尽量与我本博文所有的软件版本保持一致,避免不必要的错误. 所用软件版本列表:MySQL 5.7spring5mybaties3.4.6 首先搭建一个完整的spring5+springMVC5+ ...
- 初识Mybatis之工程搭建
简介:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 ...
- 多线程的lock功能
import threading def job1(): global A, lock lock.acquire() for i in range(10): A += 1 print('job1', ...
- 手把手教你用 FastDFS 构建分布式文件管理系统
说起分布式文件管理系统,大家可能很容易想到 HDFS.GFS 等系统,前者是 Hadoop 的一部分,后者则是 Google 提供的分布式文件管理系统.除了这些之外,国内淘宝和腾讯也有自己的分布式文件 ...