数据结构之C语言模拟整数数组实现
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h> typedef struct Arr
{
int * pBase = NULL; //数组首地址
int cnt; //当前元素个数
int len; //数组大小
} Array, *pArray; bool init_array(pArray arr, int len);
bool append(pArray arr, int val);
bool is_empty(pArray arr);
bool is_full(pArray arr);
void sort(pArray arr);
void reversal(pArray arr);
void show_array(pArray arr);
bool insert(pArray arr, int pos, int val); //pos 表示第一个元素。例如 pos=2,表示第二个元素。但是下标是1
bool del(pArray arr, int pos, int * val); // int * val保存删除的元素 int main(){ getchar();
return ; } bool is_full(pArray arr){
return arr->cnt == arr->len;
} bool is_empty(pArray arr){
return arr->cnt == ;
} bool init_array(pArray arr, int len){
if (len <= ) {
printf("len is too small");
return false;
} arr->pBase = (int*)malloc(sizeof(int)*len);
if (NULL == arr->pBase){
printf("init array is fail");
return false;
}
else{
arr->cnt = ;
arr->len = len;
return true;
} } bool append(pArray arr, int val){
if (is_full(arr)){
return false;
}
arr->pBase[arr->cnt] = val;
arr->cnt++;
return true;
} void sort(pArray arr){
for (int i = ; i < arr->cnt; i++) {
for (int j = ; j < arr->cnt - - i; j++) {
if (arr->pBase[j] > arr->pBase[j + ]) {
int temp = arr->pBase[j];
arr->pBase[j] = arr->pBase[j + ];
arr->pBase[j + ] = temp;
}
}
}
} void show_array(pArray arr){ if (is_empty(arr)){
printf("array is empty");
}
else{
for (int i = ; i < arr->cnt; i++) {
printf("%d ", arr->pBase[i]);
}
} } void reversal(pArray arr){
int i = ;
int j = arr->cnt - ;
while (i < j){
int temp = arr->pBase[i];
arr->pBase[i] = arr->pBase[j];
arr->pBase[j] = temp;
i++;
j--;
}
} bool insert(pArray arr, int pos, int val){
if (is_full(arr)){
printf("array is full");
return false;
} if (pos< || pos>arr->cnt + ){
return false;
} for (int i = arr->cnt - ; i >= pos - ; i--) {
arr->pBase[i + ] = arr->pBase[i];
}
arr->pBase[pos - ] = val;
arr->cnt++;
return true;
} bool del(pArray arr, int pos, int * val){
if (is_empty(arr)){
printf("array is empty");
return false;
} if (pos< || pos>arr->cnt){
return false;
} *val = arr->pBase[pos - ]; for (int i = pos; i < arr->cnt; i++){
arr->pBase[i - ] = arr->pBase[i];
}
arr->cnt--;
return true; }
数据结构之C语言模拟整数数组实现的更多相关文章
- C语言实现整数数组的逆置算法
读入100个整数到一个数组中,写出实现该数组进行逆置的算法. 方法一: 假设100个整数读入到数组a中,算法f1的思想是分别从数组两端依次将对应数进行交换,即a[i]与a[100 - i - 1]进行 ...
- [数据结构] 用C语言模拟一个简单的队列程序
#include<stdio.h> #include <stdlib.h> #include<string.h> #include<math.h> // ...
- 手工数据结构系列-C语言模拟栈 hdu1022
这个题我一开始是这么想的.. 爆搜所有可能的出栈序列 然后对输入进行匹配 这样我感觉太慢 然后我们可以想到直接通过入栈序列对出栈序列进行匹配 但是我犯了一个错误..那就是出栈序列一定到入栈序列里找.. ...
- 手工数据结构系列-C语言模拟队列和栈 hdu1702
#include <stdio.h> #include <stdlib.h> //================= DATA STRUCTURE ============== ...
- 手工数据结构系列-C语言模拟队列 hdu1276
#include <stdio.h> #include <stdlib.h> #define init_size 1000 typedef struct { int head, ...
- c语言经典算法——查找一个整数数组中第二大数
题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...
- 数据结构(c语言版)代码
第1章 绪论 文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲01 绪论 概述 第一章作为绪论,主要介绍了数据结构与算法中的一些基本概念和术语.对于这些概念术语 ...
- [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习)
[数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习) 在C#中,存在常见的九种集合类型:动态数组ArrayList.列表List.排序列表SortedList.哈希表HashTa ...
- 语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...
随机推荐
- iOS symbolicatecrash工具crash日志分析
若一个App没有加入Crashlytics或者Buggly这些崩溃日志监控,那么我们在App崩溃的时候如何获取崩溃信息呢? 此时我们可以通过symbolicatecrash工具对手机日志来进行分析定位 ...
- C++后台服务如何高效实现多个定时器任务
大部分云端的后台服务,经常会使用到定时器功能来检测一些状态值的变化,且当定时器较多时,就需要设计统一的定时器管理模块来维护所有的定时器资源.然而要设计性能良好的定时器和管理模块,是需要一定的经验和技巧 ...
- PCA(主成分分析)
PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...
- Easyui-交互式消息弹出框
由于项目在优化的时候需要用到弹出框,按自己的想法是傻傻的用一些alert直接弹出得了,但是这样用户体验度不是特别好,影响界面美观,所以自己还是用了封装好的easyui给的消息框,怎么用呢,这个里面很有 ...
- win10更新后IE不见了
只是快捷方式不见了,到C:\Program Files\internet explorer\iexplore.exe就看到了,可以正常运行
- hdu4651(广义五边形数 & 分割函数1)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4651 题意:f(x) 为将 x 分成其他数和的形式的方案数.对于 t 组输入,输出 f(xi). 思路 ...
- loj#115. 无源汇有上下界可行流
\(\color{#0066ff}{ 题目描述 }\) 这是一道模板题. \(n\) 个点,\(m\) 条边,每条边 \(e\) 有一个流量下界 \(\text{lower}(e)\) 和流量上界 \ ...
- 图片滚动插件jquery bxslider
https://www.cnblogs.com/axl234/p/4167196.html
- PhpStrom 和 wamp 配置 xdebug
本地服务器: 1.php.ini 添加内容: ;设置xdebug的端口为9000 xdebug.remote_handler = dbgp xdebug.remote_host= localhost ...
- windows_study_3
描述:如何解决hyper-v全屏不能自适应屏幕大小? 解决:调节虚拟机的分辨率.