【练习3.7】编写一个函数将两个多项式相乘,用一个链表实现。你必须保证输出的多项式按幂次排列,并且任意幂次最多只有一项。a.给出以O(M2N2)时间求解该问题的算法。b.写一个以O(M2N)时间执行乘法的程序,其中M≤N。c.写一个以O(MNlog(MN))时间执行乘法的程序。d.上面哪个时间界最好...
分类:
其他好文 时间:
2015-03-12 00:57:54
阅读次数:
139
有N个人围一圈依次报数,数到3的倍数的人出列,问当只剩一个人时他原来的位子在哪里?
/*约瑟夫环问题---单向循环链表实现*/
/**********************************/
/**********Date:2015.3.11*********/
/*********author:xiaozhi xiong***/
/**************************...
分类:
其他好文 时间:
2015-03-11 19:43:55
阅读次数:
128
【练习3.6】编写将两个多项式相加的函数。不要毁坏输入数据。用一个链表实现。如果这两个多项式分别有M项和N项,那么你程序的时间复杂度是多少?
分类:
其他好文 时间:
2015-03-11 16:26:54
阅读次数:
250
队列可以使用数组或者链表实现,这里介绍一种使用数组实现的循环队列。
所谓循环队列,是指当尾指针超过数组索引界限时,通过取余运算返回数组起始端,只要保证尾指针和头指针不相遇,就可以继续存储元素。
首先设定队列的大小,并建立队列结构体:
#define MAXSIZE 100001
typedef struct {
int items[MAXSIZE];
int front;
int r...
分类:
其他好文 时间:
2015-03-05 23:46:36
阅读次数:
280
数据结构之静态链表实现
前言
静态链表:
每个节点有一个数据域(data),用来存放有用的数据信息;
还有一个下标域(cur),用来指示下一个元素的下标位置。...
分类:
其他好文 时间:
2015-02-12 09:19:48
阅读次数:
189
改写要求1:用单链表实现#include #include using namespace std;struct LinkNode{ int data; LinkNode *next;};class PALINDROME{ int low,up; int ...
分类:
编程语言 时间:
2015-02-11 18:28:20
阅读次数:
145
改写要求1:用单链表实现改写要求2:析构函数中依次将链表结点删除#include #include using namespace std;struct LinkNode{ int data; LinkNode* next;};class NOPRIME{ frie...
分类:
编程语言 时间:
2015-02-10 00:26:38
阅读次数:
305
上一节我们讲到了如何用散列和链表实现HashMap,其中有一个疑问今天已经有些答案了,为什么要用链表而不是数组 链表的作用有如下两点好处 1. remove操作时效率高,只维护指针的变化即可,无需进行移位操作 2. 重新散列时,原来散落在同一个槽中的元素可能会被散落在不同的地方,对于数组需要进行移位...
分类:
编程语言 时间:
2015-02-09 21:31:33
阅读次数:
176
2015.2.8星期二,晴天栈的数组操作:栈的特点:先进后出,后进先出。用数组的方式实现:首先需要创建一个结构体,在结构体里面包括数据指针、指向栈顶的”指针“和标记栈的大小的一个变量。数据指针是指向一定大小的数组的首地址。结构体和这个数组够成一个完整的栈。1.在创建栈的操作中,主要就是创建这个结构体...
分类:
编程语言 时间:
2015-02-09 00:35:34
阅读次数:
322
/*多项式加法运算使用链表实现*/#include using namespace std;//使用不带头结点的单向链表,按照指数递减的顺序排列typedef struct PolyNode{ int coef; //系数 int expon; //指数 PolyNod...
分类:
其他好文 时间:
2015-02-05 20:03:39
阅读次数:
111