摘要:
##01-复杂度1 最大子列和问题 (20 分) 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4 阅读全文
摘要:
##本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 ###函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { Eleme 阅读全文
摘要:
##本题要求在一个数组中实现两个堆栈。 ###函数接口定义: Stack CreateStack( int MaxSize ); bool Push( Stack S, ElementType X, int Tag ); ElementType Pop( Stack S, int Tag ); 其中 阅读全文
摘要:
总共14种 首先栈是一个先入后出的结构。 假设D先出栈,只有可能是ABCD进栈,DCBA出 假设C先出栈,就是ABC进栈,C出,然后考虑AB是否出和D是否进的情况 若A不出B出,那么B出后,D就要进,则为CBDA 若A出B出,那么B出后D再进,则为CABD 若D先进再考虑A和B的话则只有一种情况,C 阅读全文
摘要:
下面我们讲下具体带头结点和不带头结点的一个情况。 头指针:通常使用“头指针”来标识一个链表,如单链表L,头指针为NULL的时表示一个空链表。链表非空时,头指针指向的是第一个结点的存储位置。 头结点:在单链表的第一个结点之前附加一个结点,称为头结点。头结点的Data域可以不设任何信息,也可以记录表长等 阅读全文
摘要:
##引用 realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法:#include <stdlib.h> 有些编译器需要#include <alloc.h> 功能:改变mem_address所指内存区域 阅读全文
摘要:
##一、什么是引用 引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价 语法:类型 &引用名=目标变量名; ###C++ 引用 vs 指针 引用很容易与指针混淆,它们之间有三个主要的不同: 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对 阅读全文
摘要:
#线性表的链式存储实现 ###不要求逻辑上相邻的两个元素物理上也相邻;通过“链”建立起数据元素之间的逻辑关系。 ####• 插入、删除不需要移动数据元素,只需要修改“链”。 typedef struct lnode *list; //取别名 struct lnode *结构体指针等价于list st 阅读全文
摘要:
###区别1:scanf()可以同时接受多个字符串,而gets()一次只能接受一个字符串。 ###区别2:scanf()可以不能接受带空格的字符串,而gets()能接受带空格的字符串。 ###区别3:scanf()不能接受长度为0的字符串,会自动忽略开头的所有空格,并且以空格、换行符、回车结束输入。 阅读全文
摘要:
大家都知道 int 在 linux 系统下默认是占 4 个字节,数值表示范围是:-2147483648 ~ 2147483647。即使是无符号 unsigned int 类型表示范围:0—4294967295,大约 42 亿。 在大多情况下 int 类型都是可以满足需要的,但不乏有特殊情况;今天做 阅读全文