C/C++
文章平均质量分 81
LeleLJ
简单就是美
展开
-
内存分配方式
1.内存的分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分配原创 2013-09-12 19:28:11 · 512 阅读 · 0 评论 -
栈和堆的区别
(转载,稍有修改)堆和栈是两个不用概念 一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS(Operating System)回收 。注意它与数据结构中的堆是两回事原创 2013-09-12 19:27:54 · 624 阅读 · 0 评论 -
堆排序和快速排序
点击(此处)折叠或打开#includestdio.h>typedef struct{ int key;}keytype;typedef struct{ keytype r[100]; int length;}sqlist;/*创建顺序表*/void creat(sqlist *l){ int i,key; printf("please intput it's length:"); scan原创 2013-09-12 19:29:06 · 652 阅读 · 0 评论 -
迷宫问题
点击(此处)折叠或打开/* *题二:求解迷宫的一条最短路径,要求:用栈和队列实现, *不允许使用递归算法。问题描述见教材第50页“3.2.4 迷宫求解”。 */#include stdio.h>#include malloc.h>#include conio.h>#define ERROR 0#define OK 1#define OVERFLOW 0#define STACK_INIT_SIZE原创 2013-09-12 19:28:53 · 583 阅读 · 0 评论 -
链式存储
点击(此处)折叠或打开/* *题二:设计并实现以下算法:给出用单链表存储多项式的结构, *利用后接法生成多项式的单链表结构,实现两个多项式相加的运算, *并就地逆置加相后的多项式链式。 */#include stdio.h>#include malloc.h>#include conio.h>#define EQUAL 1#define ok 1#define error 0#define ove原创 2013-09-12 19:28:42 · 610 阅读 · 0 评论 -
链式存储
点击(此处)折叠或打开#include stdio.h>#include malloc.h>#include conio.h>#define EQUAL 1#define ok 1#define error 0#define overflow -1#define LIST_INIT_STZE 100#define LISTINCREMENT 10struct STU{ char name[2原创 2013-09-12 19:28:40 · 585 阅读 · 0 评论 -
顺序存储
点击(此处)折叠或打开#include stdio.h>#include malloc.h>#include conio.h>#define ERROR 0#define OK 1#define EQUAL 1#define OVERFLOW -1#define LIST_INIT_SIZE 100#define LISTINCREMENT 10struct STU { char name[原创 2013-09-12 19:28:35 · 535 阅读 · 0 评论 -
矩阵的快速转置
#include#define OK 1#define SIZE 100typedef struct {int i,j;int e;}Triple;typedef struct{ Triple data[SIZE+1];int mu,nu,tu;}Tsmatrix;int a,b;int createTsmarix(Tsmatrix *M){int m,n,p=1;int c;prin原创 2013-09-12 19:28:33 · 798 阅读 · 0 评论 -
C++编写简单计算器
#include#include#include #includeclass calculator{public:calculator(char str1[100]);~calculator(); int check(char *c);//判断输入的表达式是否正确 void move(char *f, double *s,int p);//f存放字符,s存放数字 p:当前运算符数组的位置 d原创 2013-09-12 19:28:09 · 3679 阅读 · 0 评论 -
字符串String
C++ string资料一之所以抛弃char *的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中原创 2013-09-12 19:28:06 · 528 阅读 · 0 评论 -
有向图的深度和广度搜索
点击(此处)折叠或打开/* * 图采用邻接表结构表示。实现有向图的深度优先搜索算法 */#include stdio.h>#include stdlib.h>#define MAX_VERTEX_NUM 4#define TRUE 1#define FLASE 0int visited[MAX_VERTEX_NUM];typedef struct ArcNode{ int adjvex;原创 2013-09-12 19:29:03 · 843 阅读 · 0 评论 -
二叉树的深度和分支节点数
点击(此处)折叠或打开/* *二叉树采用二叉链表结构表示。设计并实现如下算法: *求一棵二叉树的深度和双分支结点的个数。 */#include stdio.h>#include stdlib.h>#define ERROR 0#define OK 1#define OVERFLOW 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 100type原创 2013-09-12 19:29:00 · 4949 阅读 · 0 评论 -
二叉树
点击(此处)折叠或打开/* *二叉树采用二叉链表结构表示。设计并实现如下算法: *后序递归建树,先序非递归遍历该树。 */#include stdio.h>#include stdlib.h>#define ERROR 0#define OK 1#define OVERFLOW 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 100typede原创 2013-09-12 19:28:58 · 590 阅读 · 0 评论 -
稀疏矩阵的存储与快速转置
点击(此处)折叠或打开#include stdio.h>#include stdlib.h>typedef struct { int row; int col; int e;}Triplet;typedef struct { Triplet data[10]; int rows; int cols; int nums;}Table;void Create原创 2013-09-12 19:28:55 · 793 阅读 · 0 评论 -
栈的应用
点击(此处)折叠或打开#include stdio.h>#include malloc.h>#include conio.h>#define ERROR 0#define OK 1#define OVERFLOW 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 100typedef char ElemType;typedef struct {原创 2013-09-12 19:28:46 · 536 阅读 · 0 评论 -
顺序存储
点击(此处)折叠或打开#include stdio.h>#include malloc.h>#include stdlib.h>#define ERROR 0#define OK 1#define EQUAL 1#define OVERFLOW -1#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct { int *原创 2013-09-12 19:28:37 · 514 阅读 · 0 评论