数据结构之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自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...
随机推荐
- java 的exception throw try catch
import java.util.*; public class MyException extends Exception { private static final Exception Exce ...
- C# Winform欢迎窗体实现()
方法一.program.cs 中先启动欢迎窗体,然后注册程序运行空闲去执行主程序窗体相应初始化代码 static void Main(string[] args) { Application.Enab ...
- metasploit 读书笔记1
The msfpayload component of Metasploit allows you to generate shellcode, executables, and much more ...
- Django之博客系统:用户注册和Profile
前面章节介绍了用户的登录,退出.这一章将介绍用户的注册.首先需要创建一个表单来让用户填写用户名,密码等信息.创建UserRegistrationFrom表单.并指定model为User类 from d ...
- Rabbitmq——实现消费端限流 --NACK重回队列
如果是高并发下,rabbitmq服务器上收到成千上万条消息,那么当打开消费端时,这些消息必定喷涌而来,导致消费端消费不过来甚至挂掉都有可能. 在非自动确认的模式下,可以采用限流模式,rabbitmq ...
- JQuery全局篇
学到JavaScript的时候,感觉这个东西很神奇,没想到学到JQuery的时候,发现BS的世界,真的很微妙,不经意的一个方法就可以给人焕然一新的感觉,很喜欢这个阶段学的东西,但是还是感觉少于代码的训 ...
- 5、OpenCV Python ROI和泛洪填充
__author__ = "WSX" import cv2 as cv import numpy as np #泛洪填充 从一个点开始 ,填充周围和他相似的点,直到遇到一个边界 # ...
- P2105 K皇后
题意:$n*m$棋盘放置k个皇后,问几个格子不被攻击 1≤n,m≤20000,1≤k≤500 开set判重暴力$O(n*k)$然而,setMLE了QAQ 正解确实是$O(n*k)$的 以hang[i] ...
- CF796C Bank Hacking 思维
Although Inzane successfully found his beloved bone, Zane, his owner, has yet to return. To search f ...
- jenkins在windows系统下部署安装,使用
首先需要从官网上下载下来war包,让进入tomcat中 启动tomcat,然后可以看一堆日志 再在网站输入 localhost:8080/jenkins就会进去下面界面: 会出现上面状况: 需要进入: ...