数据结构
文章平均质量分 76
gudujianjsk
这个作者很懒,什么都没留下…
展开
-
链表 3:单链表就地逆置
将一个带头结点的数据域依次为:a1,a2,a3,。。。。an(n>= 3)的单链表所有节点逆置,既第一个节点的数据域是an,。。。,最后一个数据域为a1 #include #include typedef char datatype;typedef unsigned cnttype;typedef struct node{ datatype原创 2010-02-26 15:36:00 · 2370 阅读 · 0 评论 -
链表 1:设计链表的一些细节
先说一些设计链表的一些规则和细节: typedef unsigned cnttype; typedef char datatype;1)对于链表应当使用一个头节点:既不使用数据域的节点如: typedef struct node{ datatype data; struct node *next; }node; 也许有人会说这样会浪费数据空间,但是这样会简化算法相应的也就节原创 2010-02-26 14:12:00 · 773 阅读 · 0 评论 -
链表 2:建立链表的两种方法
建立链表的两种方法:头插法与尾插法/*都有一个头结点*/ #include #include typedef char datatype;typedef unsigned cnttype;typedef struct node{ datatype data; struct node *next;}node;/*头插法原创 2010-02-26 15:34:00 · 781 阅读 · 0 评论 -
线性代数4:稀疏矩阵的十字链表表示法
十字链表为稀疏矩阵的没一行单独设置一个链表,同时也为每一列单独设置一个链表。这样稀疏矩阵的每一个非零元素就同时在两个链表中,即每一个非零元素同时包含在所在行的行链表中和所在列的列连表中。这就大大降低了链表的长度,方便了算法中行方向和列方向的搜索,因而大大降低了算法的时间复杂度。 其中i,j,value分别代表非零元素所在的行号,列号和相应的元素值;down和right分别称为向下指针和原创 2010-04-02 14:55:00 · 3440 阅读 · 0 评论 -
线性代数 2:几个基本的矩阵处理函数
先讲一个最基本的矩阵变换函数以后的各种变换都要用到: /*由于元素为double类型故当与0或1比较式应当近似比较:*/#define N 0.000001#define Ng (N + 1)#define Nl (1 - N)lbian change_data(data *D ){ lbian count; lbian i,j,k,原创 2010-02-27 20:46:00 · 776 阅读 · 0 评论 -
线性代数 1:基本的数据类型和数据结构选择
线性代数中涉及到了矩阵和行列式。其中行列式的行列值是相等的但矩阵就不一定满足这个条件为了方便设计,可以将行列式看成是一种特殊的矩阵。既二者公用一个结构体类型。 /*基本数据类型*/typedef struct data{ lbian hang; /*行数*/ lbian lie; /*列数 */ datatype **top; /*指向行列式原创 2010-02-27 20:07:00 · 1033 阅读 · 0 评论 -
线性代数 3:利用克拉默法则解方程组
a11*x1 + a12*x2 + a13*x3 + ........a1n*xn = b1;a21*x1 + a22*x2 + a23*x3 + ........a2n*xn = b2; (1-8) .................................an1*x1 + an2*x2 + an3*x3 + ........ann*xn = b原创 2009-10-08 12:44:00 · 10038 阅读 · 0 评论 -
迷宫问题两种算法
1)问题描述:给定一个M*N的迷宫图,求一条从指定入口到出口的路径。假设迷宫用下图表示。对于每一个方块空白表示通道,阴影表示墙。所求路径必须是简单路径,即在求得的路径上不能重复出现同一个通道块。2)数据组织:为了表示迷宫,设置一个数组mg,其中每一个元素表示一个方块的状态,为0是表示是通道,否则就不可走。为了算法方便,在一般的外面加了一道墙。上图所示的迷宫对应的数据组mg如下:byte m原创 2010-04-02 15:38:00 · 5138 阅读 · 3 评论