摘要:
这是自己学C语言时,突发奇想写一个计算一学期平均绩点的小程序,当时很兴奋,觉得有收藏价值。所以自己收藏一下!当然写得还是很一般。#include <stdio.h>void main(){int i=0;int j=0;int test_lessons=0;int check_lessons=0;char check_level[5];float check_credit[20];float test_credit[20];float check_point[20];float test_point[20];float total1=0.00;float total2=0.00;f 阅读全文
摘要:
#ifndef RECORD_H#define RECORD_H#include <iostream>using namespace std;class Record{ public: Record(); Record(string name, int age); virtual ~Record(); void Display(); protected: private: public: string name; int age;};#endif // RECORD_H#ifnde... 阅读全文
摘要:
1.C++的标准库中没有定义null,所以要用NULL。2.window文件名不区分大小写,所以写程序时头文件中字母不区分大小写。3.可以使用二叉树方法来解决任意一个字符的编码不是另一个字符的前缀的问题。(例如赫夫曼编码)4.变量的声明定义。以及变量的有效范围,系统分配的地址,在编程过程中值得注意。(在我的“变量存放问题”中做了解答)5.switch语句中要注意到的一点case结束的时候要加上break;不然程序会继续进行下边的case语句。6.类对操作符直接进行使用时,一般需要对操作符进行重载,但c++中“=”有默认的重载,即类中的成员依次赋值。 阅读全文
摘要:
二叉树的遍历如果使用递归调用基本没什么问题,这里主要是讲如何使用非递归方法实现二叉树的遍历。由于递归调用程序实际上使用了栈来保存方法中的变量值,在非递归遍历的方法中我们需要基于栈的方法。先来看看这个方法01/// <summary> 02/// 非递归中序遍历二叉树 03/// </summary> 04/// <param name="root"></param> 05static void InOrderTraverse(BinaryTreeNode root) 06{ 07BinaryTreeNode temp = ro 阅读全文
摘要:
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字... 阅读全文
摘要:
递归算法向非递归算法转换递归算法实际上是一种分而治之的方法,它把复杂问题分解为简单问题来求解。对于某些复杂问题(例如hanio塔问题),递归算法是一种自然且合乎逻辑的解决问题的方式,但是递归算法的执行效率通常比较差。因此,在求解某些问题时,常采用递归算法来分析问题,用非递归算法来求解问题;另外,有些程序设计语言不支持递归,这就需要把递归算法转换为非递归算法。 将递归算法转换为非递归算法有两种方法,一种是直接求值,不需要回溯;另一种是不能直接求值,需要回溯。前者使用一些变量保存中间结果,称为直接转换法;后者使用栈保存中间结果,称为间接转换法,下面分别讨论这两种方法。1. 直接转换法直接转换法通常 阅读全文