![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
wangrunmin
这个作者很懒,什么都没留下…
展开
-
数据结构--二叉树--获得二叉树的深度和根(顺序结构)
//二叉树的顺序存储表示#define MAX_TREE_SIZE 100//二叉树最大节点数typedef TElemType SqBiTree[MAX_TREE_SIZE]//0号单元存储根节点SqBiTree bt;顺序存储结构:用一组地址连续的存储单元依次自上而下、自左而右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储在定义为一维数组中下标为i-1的分量原创 2012-08-05 08:07:44 · 3636 阅读 · 0 评论 -
数据结构--二叉树--层次遍历二叉树(顺序遍历)
#include /* EOF(=^Z或F6),NULL */#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */#if CHAR typedef char TElemType; TElemTy原创 2012-08-11 19:50:38 · 6689 阅读 · 1 评论 -
数据结构--数组--马鞍点
如果矩阵A中存在这样的一个元素A[i][j]满足我条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马点。编写一个程序计算出m*n的矩阵A的所有马鞍点#include "stdio.h"#define n 3#define m 3void Get_Saddle(int A[m][n])/*求矩阵A中的马鞍点*/{ int i,j原创 2012-07-31 01:32:58 · 3912 阅读 · 0 评论 -
va_list的问题
1.概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.2.定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n) ((s转载 2012-07-30 23:12:56 · 3670 阅读 · 0 评论 -
数据结构--数组--对角矩阵建立
所有非主对角线元素全等于零的n阶矩阵,称为对角矩阵或称为对角方阵。#include "stdio.h"#define n 4int d[n];void Store(int x, int i, int j){/* 把x存为D ( i , j ) */ if (i=n||j>=n) { printf("数组出界!"); exit(1); } if (原创 2012-07-31 01:36:36 · 2103 阅读 · 0 评论 -
数据结构--数组-三对角矩阵
形如这样的矩阵就叫三对角矩阵。星号是数据,其他为零。以按行为主序的原则转存为一维数组M[k]中,则A[i,j]的对应关系为 k=2*i+j.另一种计算方式为 当i=j+1时k=3*i-1 当i=j时k=3*i 当j=i+1时k=3*i+1#include "stdio.h"#define n 4int t[3*n];void Sto原创 2012-07-31 09:14:57 · 6802 阅读 · 0 评论 -
数据结构--数组--三角矩阵的建立
以主对角线划分,三角矩阵有上三角矩阵和下三角矩阵两种。 ①上三角矩阵 如下图所示,它的下三角(不包括主角线)中的元素均为常数c。 ②下三角矩阵 与上三角矩阵相反,它的主对角线上方均为常数c,如下图所示。 以按行为主序的原则转存为一维数组T[k]中,则A[i,j]的对应关系为 k=i*(i+1)/2+j;#原创 2012-07-31 09:53:05 · 4263 阅读 · 0 评论 -
数据结构--数组--稀疏矩阵的建立
稀疏矩阵的建立#include "stdio.h"#define MAX_SIZE 50 /* 最大的稀疏矩阵 */typedef enum {head, entry} tagfield; //行链表的头指针和列链表的头指针struct entry_node { //非零元节点 int row; //非零元所在行的下标 int c原创 2012-07-31 15:38:50 · 1923 阅读 · 0 评论 -
C语言字符数组的初始化
1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空转载 2012-08-01 09:07:56 · 108902 阅读 · 10 评论 -
数据结构--数组--对称矩阵的建立
若n阶矩阵A中的元满足下述性质(以数组表示)A[i][j] = A[j][i] 0=则成为n阶对称矩阵。对于n阶矩阵,我们可以为每一对对称元分配一个存储空间,可以将n*n个元压碎存储到n(n+1)/2个元的空间中。不失一般性,我们可以以行序为主序存储其下三角(包括对角线)中的元。假设以一位数组sa[n(n+1)/2]作为n阶对称矩阵A的存储结构,则sa[k]和矩阵数组A[原创 2012-07-31 10:22:15 · 3205 阅读 · 0 评论 -
排序---希尔排序
希尔排序(Shell Sort)又称为缩小增量排序,输入插入排序算法,是对直接排序算法的一种改进。本文介绍希尔排序算法。 对于插入排序算法来说,如果原来的数据就是有序的,那么数据就不需要移动,而插入排序算法的效率主要消耗在数据的移动中。因此可知:如果数据的本身就是有序的或者本身基本有序,那么效率就会得到提高。 希尔排序的基本思想是:将需要排序的序列划分成为若干个转载 2012-08-16 09:35:55 · 894 阅读 · 0 评论 -
链表的常见操作
链表是数据结构的重要内容,在计算机程序中应用广泛,同时也是各公司笔试题目的重点。 以下简单实现了链表的一些操作,包括创建、增加节点、删除节点、单链表逆置、合并有序链表等。 一、链表创建 链表主要有三种形式,包括单链表、双链表和循环链表。 单链表每个节点只包含一个后驱指针,双链表节点同时包含一个前驱指针和一个后驱指针,循环链表的尾节点的后驱指向头节点。 代码如下:/*转载 2012-08-22 09:24:02 · 1020 阅读 · 0 评论 -
数据结构--二叉树--后续遍历二叉树(链式结构)
后序遍历二叉树--链式结构#define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef int Status; /* Stat原创 2012-08-11 17:18:06 · 860 阅读 · 0 评论 -
数据结构--二叉树--中序递归遍历二叉树(链式结构)
#define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#include #define TRUE 1#define FALSE 0#define OK 1typedef int Status; /* Status是函数的类型,其值是函数结果状态代原创 2012-08-11 09:33:22 · 1169 阅读 · 0 评论 -
数据结构--二叉树--层次遍历二叉树(链式遍历--队列)
#define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include #include /* floor(),ceil(),abs() */#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef int Status; /* Status是原创 2012-08-11 20:54:40 · 2321 阅读 · 0 评论 -
malloc内存分配实例--整数排序
为长度在运行时才知的数组分配内存空间。/*取一列整数,并按升序排列他们,最后打印*/#include "stdio.h"#include "conio.h"#include "stdlib.h"int compare_integers(void const *a,void const *b){ register int const *pa = a;原创 2012-08-07 10:33:52 · 1931 阅读 · 0 评论 -
数据结构--二叉树--获得二叉树的深度和根(链表结构)
采用二叉链表结构构造二叉树,完成其基本操作。 #include #define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#define TRUE 1#define FALSE 0#define OK 1typedef int Status;原创 2012-08-07 17:52:29 · 1181 阅读 · 0 评论 -
数据结构--二叉树--节点的修改(顺序结构,包括二叉树的顺序遍历和打印)
修改某个结点,并打印修改完的二叉树#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef int Status; /* Status是函数的类型,其值原创 2012-08-10 12:44:10 · 2535 阅读 · 0 评论 -
数据结构--二叉树--节点的修改(链式结构--队列)
建一个队列,将二叉树的每个 节点入队列并判断处理 #define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0t原创 2012-08-10 16:15:19 · 1882 阅读 · 0 评论 -
c++中“箭头(->)”和“点号(.)”操作符的区别 .
转自:http://blog.csdn.net/gyymen/article/details/4962873首先介绍一下C++中的结构。对于一个结构:struct MyStruct{ int member_a;};如果有个变量MyStruct s,那么使用其中的成员元素时可以用:s.member_a = 1;如果采用指针方法访问,比如MyStruct * ps,那么同样的访问就必转载 2012-08-10 20:38:56 · 37134 阅读 · 1 评论 -
数据结构--二叉树--中序递归遍历二叉树(顺序结构)
#include /* EOF(=^Z或F6),NULL */#include #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */#if CHARtypedef char TElemType原创 2012-08-11 09:19:42 · 2827 阅读 · 0 评论 -
数据结构--二叉树--双亲、孩子和兄弟节点的查询(顺序结构)
#include /* EOF(=^Z或F6),NULL */#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */#if CHARtypedef char TElemType;TElemType原创 2012-08-10 19:21:34 · 14030 阅读 · 0 评论 -
数据结构--二叉树--双亲、孩子和兄弟节点的查询(链式结构--队列)
#define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef int Status; /* Status是函原创 2012-08-10 19:54:06 · 10145 阅读 · 2 评论 -
数据结构--二叉树--中序非递归遍历二叉树(链式结构)
若栈顶记录的指针值为空,则应退至上一层,若是从左子树返回,则应访问当前层即栈顶记录中指针所指的根节点;若从右子树返回,则表明当前层便利结束,应继续退栈。#define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#include #define TRUE 1#原创 2012-08-11 11:59:12 · 963 阅读 · 0 评论 -
数据结构--二叉树--后续遍历二叉树(顺序结构)
#include #include #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */#if CHARtypedef char TElemType;TElemType Nil=' '; /原创 2012-08-11 16:54:15 · 907 阅读 · 0 评论 -
数据结构--二叉树--中序非递归遍历二叉树(链式结构)2
前一个为先判断,条件允许再压栈;这个为先压栈再判断,不合适退栈,先把左子树的所有内容遍历一遍并压栈,然后判断,直到为空,再遍历右子树。#define CHAR /* 字符型 */#include /* EOF(=^Z或F6),NULL */#include /* floor(),ceil(),abs() */#include #define TRUE 1#define原创 2012-08-11 17:34:43 · 1348 阅读 · 0 评论 -
类前置声明的使用
转自:http://blog.csdn.net/raocong2010/article/details/6431502在书写C++代码的过程当中,人们有时会用到一个叫类前置声明的东西。那么使用这个类前置声明对于程序员来讲有什么好处呢,我们什么时候可以利用这个类前置声明呢?下面就用一个具体的例子来解释类前置声明的用法。 在书写C++代码的过程当中,人们有时会用到一个叫类前置声明的东转载 2013-05-15 09:41:08 · 2278 阅读 · 0 评论