2 吃数据的猴子

尚未进行身份认证

我要认证

程序人生

等级
TA的排名 6w+

二级指针做函数参数

下面围绕对指针数组的操作进行说明第一种内存模型#include "stdio.h"#include <stdlib.h>#include <string.h>void printArr(char** arr,int num) { if (arr == NULL)return -1; for (int i = 0; i < num; i++) { printf("%s\n", arr[i]); }}int sortArr(char** arr, int.

2020-08-11 22:27:45

C实现迪杰斯特拉算法求最短路径

文章目录1.找到初始顶点X到各个顶点的权值(这里X为A)第2步和第3步用一个for(i1.找到初始顶点X到各个顶点的权值(这里X为A)for (int i = 0; i < n; i++){ dist[i] = GetWeight(g,v,i); s[i] = false; if (i != v && dist[i] < MAX_COST) path[i] = v; else path[i] = -1;}第2步和第3步用一个for(i<n-1)包

2020-08-10 23:33:22

32位cpu和64位cpu对内存地址和内存单元的差别

计算机中最基本的存储单元(即内存单元)为1字节,无论计算机是多少位的计算机,和cpu的位数无关32位或64位针对的是内存单元的地址的个数,即cpu的寻址能力在各个可视化软件中,以16进制的形式表示内存地址和内存地址里存储的值。上图中内存地址为8位16进制,根据两位16进制换算为1字节,该cpu内存地址最大是8字节(即32位),为32位计算机。一共有4G个地址里面的值都是每两位16进制数(即1字节)进行存储。如果是64位的计算机,那么内存地址单元就是16位16进制数表示(64位),计算后其可寻址空

2020-08-10 10:12:51

操作系统的结构

Operating-Sysytem Structures:1.Operating System Serviecs.User InterfaceProgram executionI/O operationsfile-system manipulation2.User Operating System Interface.3.System Callwindows里喜欢叫API,而Un...

2020-08-09 09:29:58

进程同步之生产者消费者问题

文章目录生产者消费者问题如何避免——竞争条件peterson solution硬件可以控制中断(关中断)核心问题:当多线程多进程的编程时,只要有共享的数据(内存)被访问,数据就有可能被破坏。生产者消费者问题生产者往缓冲区写数据,消费者读数据,缓冲区有限制,一个只能读,一个只能写,且速度不一样。count记录现在缓冲区的数据,这是两个进程中共享的变量,缓冲区最多可放BUFFER_SIZE个...

2020-08-09 09:28:23

CPU调度

while纯占cpu,不做输入输出操作,这种程序存在没有任何意义。大多数程序通过Io获得数据,通过cpu对数据进行处理,再通过IO将结果输出出去一、调度1.分类就绪队列里的进程让哪一个先进行1.运行态到等待态2.运行态到就绪态3.等待态到就绪态4.运行的进程退出非抢占式:1,4,自愿出让cpu自愿抢占式:2,3 抢占式的调度是被动的现在的OS一般都是抢占式的,让其他进程都有运行...

2020-08-09 09:26:55

计算机的启动过程

阮一峰:http://www.ruanyifeng.com/blog/2013/02/booting.html结合:https://blog.csdn.net/langeldep/article/details/8788119

2020-08-09 09:23:20

计算机启动过程(x86)

1.x86PC刚开机时CPU处于实模式,和保护模式对应,实模式的寻址CS:IP(CS左移4位+IP),和保护模式不一样!2.CS=0xFFFF;IP=0x0000;3.寻址0xFFFF0(ROM BIOS映射区),唯一有代码的地方4.检查RAM,键盘,显示器,软硬磁盘5.将磁盘 0磁道0扇区读入内存的0x7c00处(OS的引导扇区)0x7c00存放的代码就是从磁盘引导扇区读入的那512...

2020-08-09 09:21:50

图的连通性问题——最小生成树之克鲁斯卡尔算法的实现

图示难点是:当选择最后一条边时,v2-v3是5,v1-v4也是5,但是v1-v4一旦连上就会出现环且这个图不是连通图,所以在代码中如何判断环的出现和保证最小生成树是连通的?代码//定义一个结构体记录生成树一条边的起始顶点和终止顶点,还有相应的权值的信息typedef struct Edge{ int x; // start int y; // end E cost;}Edge;int cmp(const void*a, const void *b)//比较权值的大小{ re

2020-08-07 20:13:48

图的连通性问题——最小生成树之普里姆算法的实现

实现的文字说明如何实现的图示说明mst[2]=1 lowcost[2]=6 从点1到点2的权值是6以v3为终点的权值最小,把边<MST[3],3>=1加入最小生成树MST以v6为终点的权值最小,把边<MST[6],6>=4加入最小生成树MST以v4为终点的权值最小,把边<MST[4],4>=2加入最小生成树MST以v2为终点的权值最小,把边<MST[2],2>=5加入最小生成树MST当所有的数组的值都为0,说明创建成

2020-08-07 16:25:48

关于图的存储——邻接矩阵(无向图的顺序表示)

有向/无向不带权图带权图定义图的结构体#define Default_Vertex_Size 10#define T chartypedef struct GraphMtx{ int MaxVertices;//最大顶点容量 int NumVertices;//图中顶点个数 int NumEdges;//图中边的条数 T *VerticesList;//指向存有顶点的空间的指针 int **Edge;//指向存矩阵的空间的指针}GraphMtx;初始化void

2020-08-06 13:06:22

数据结构+算法=程序设计

文章目录程序设计:为计算机处理问题编制的一组指令集数据结构:问题的数学模型数据数据元素(数据结构中讨论的基本单位)数据结构数据结构的形式定义 (逻辑结构): 二元组 Data_Structure(D,S)逻辑结构在计算机中的表示(存储结构)元素的映像方法:二进制存储(bit)关系的映像方法:以一个有序对程序设计:为计算机处理问题编制的一组指令集数据结构:问题的数学模型和数值计算相关的的数学模型求解的问题,如建立线性代数方程,常微分偏微分方程,就是计算数学所要研究的问题。和非数值计算相关的的数学模型求

2020-08-06 12:11:24

关于图的存储——邻接表的实现(无向图的链式表示)

V1顶点后面链着的是与他相连的边的序号(第i个单链表后的结点表示依附于顶点Vi的边)这是一个无向图,所以邻接表一共有12条边定义结构体

2020-08-05 23:01:14

C语言实现数据结构——(二叉链表的递归和非递归遍历)

递归遍历中序前序后序非递归遍历中序前序后序

2020-07-31 22:12:27

C实现数据结构——孩子兄弟表示法实现树和森林

因为树和森林都可以与二叉树相互转化,所以采用二叉链表的存储方式表示树和森林容易在计算机中实现共有10个节点,则有11个空指针树的二叉链表(孩子-兄弟)存储表示*fristChild指向该结点的第一个孩子节点,*nextSibling指向该结点的兄弟节点。虽然类似于二叉树的左右孩子节点指针,但是功能不同#define ElemType chartypedef struct TreeNode{ ElemType data; struct TreeNode *fristChild; st

2020-07-31 15:52:07

二叉树改进——根据中序遍历实现线索二叉树

结构体#define ElemType chartypedef enum{LINK,THREAD}Tag_Type;//LINK表示指针,指向结点的左右孩子 //THREAD表示线索,指向结点的前驱(L)或后继(R)typedef struct BinTreeNode{ ElemType data; struct BinTreeNode *leftChild; struct BinTreeNode *rightChild;

2020-07-30 23:36:09

C语言实现数据结构——二叉树(二叉链表)

文章目录定义结构体初始化先序遍历创建二叉树测试递归遍历中序前序后序非递归遍历中序前序后序其他方法定义结构体初始化先序遍历创建二叉树//1按照先序次序输入二叉树中结点的值,构造二叉链表表示的二叉树btvoid CreateBinTree_1(BinTree *bt) { CreateBinTree_1(bt, &(bt->root));//参数的传递都需要地址}void CreateBinTree_1(BinTree *bt, BinTreeNode **t) {//*t代表根节

2020-07-30 17:18:28

C语言实现数据结构——链式队列

结构体#define ElemType inttypedef struct QueueNode {//每个节点的组成 ElemType data; struct QueueNode* next;}QNode;typedef struct LinkQueue {//用于管理整个队列 QNode* front;//指针类型是节点类型,永远指向头结点 QNode* tail;//永远指向尾结点}LinkQueue;初始化void InitQueue(LinkQueue *Q) { //

2020-07-30 10:30:47

C语言实现数据结构——循环队列(队列的顺序表示的改进)

对队列的顺序表示的改进队满但是队空时font下标和rear下标也是相等的,为了区分,可以采用下面这种方式font=rear+1表示队满也可以采用设一个标志位判断空还是满入队void EnQueue(Queue *Q, ElemType x){ if(((Q->rear+1)%MAXSIZE) == Q->front)//若队满退出 return; Q->base[Q->rear] = x; Q->rear = (Q->rear+1)%MAXSI

2020-07-29 22:55:49

C语言实现数据结构——队列(队列的顺序表示和实现)

结构体#define ElemType int#define MAXSIZE 8typedef struct Queue { ElemType *base;//这个指针指向初始化的动态分配存储空间 int front;//用于记录队头下标 int rear;//用于记录队尾下标,表示能放的下标}Queue;入队void EnQueue(Queue *Q, ElemType x) { //队列满了,rear下标指向MAXSIAZE if (Q->rear >= MA.

2020-07-29 21:57:36

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取