C and C++

这是博主关于C,C++的总结及经验.一切从hello world!开始 : )

ideal growth rate for a dynamically allocated array

16
allocate 16*1.5=24  deallocate 16
allocate 24*1.5=36. deallocate  16+24=40
allocate 36*1.5=54. deallocate  40+36=76
allocate 54*1.5=81 deallocate.  76+54=130
allocate 81*1.5=121.5 < 130 reuse
choosing 1.5 as the factor allows memory reuse after 4 reallocations; 1.45 allows memory reuse after 3 reallocations; and 1.3 allows reuse after only 2 reallocations.

method of exhaustion on coin array problem

/*
method of exhaustion on coin array problem
金币阵列问题

问题描述:

有m x n (m<=100, n<=100 ) 个金币在桌面上排成一个m行n 列的金币阵列。每一枚金币或正面朝上或背面朝上。用数字表示金币状态,0表示金币正面朝上,1 表示背面朝上。金币阵列游戏的规则是: (1)每次可将任一行金币翻过来放在原来的位置上; (2)每次可任选2 列,交换这2 列金币的位置。 Continue reading

迪杰斯特拉Dijkstra算法 图论最短路径问题

//在Dijkstra算法里,为了求源点v0到其他各个顶点vi的最短路径及其长度,需要设置三个数组

//dist[n]: dist[i]表示当前找到的从源点v0到终点vi 的最短路径长度,初始化时,dist[i]=Edge[v0][i],即邻接矩阵的第v0行

//S[n]: S[i]为0表示顶点vi 还未加入到集合S中,S[i]为1表示vi已经加入到集合S中,初始化时,S[v0]为1,其余为0,表示最初集合S中只有顶点v0

//path[n]: path[i]表示v0到vi的最短路径上顶点vi的前一个顶点序号,采用”倒向追踪”的方法,可以确定v0到顶点vi的最短路径上的每个顶点

//在Dijkstra算法里,重复做以下步骤: Continue reading

数据结构 停车场的程序模拟

 问题描述:
设停车场是一个可停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆达到时间的先后顺序,依次由北向南排列(大门在最南端,最先达到的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退车车场为它让路,待赶辆车开出大门外,其它车辆在按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短叫纳费用。试为停车场编制按上述要求进行管理的模拟程序。 Continue reading