【Note】数据结构
文章平均质量分 79
Thereisnospon
在校本科生,渣渣一枚,正在向成为一名大牛而努力~
展开
-
带头节点的链表
链表的基本操作#include#include#includetypedef int type;typedef struct Node{ type info; struct Node *next;}node;//建立一个头节点并将其指针返回node *node_init(){ node *head=(node*)malloc(sizeof(node原创 2015-01-30 17:37:17 · 614 阅读 · 0 评论 -
二叉树
#include#include#include#define MAX 100typedef int type;typedef struct node{ type data; struct node *lchild,*rchild;}bintnode;typedef bintnode *bintree;bintree root;//递归前原创 2015-02-03 15:13:02 · 362 阅读 · 0 评论 -
二叉排序树
#include#includetypedef int type;typedef struct node{ type key; struct node *lchild,*rchild;}bsnode;typedef bsnode *bstree;//非递归查找x的位置,通过二级指针返回其父亲节点位置和其位置void bssearch(bstree t,type x,原创 2015-02-06 17:49:41 · 268 阅读 · 0 评论 -
Huffman树
#include#include#includetypedef struct node{ int data; struct node *lchild,*rchild,*next;}hufnode;typedef hufnode *linkhuf;linkhuf insert(linkhuf root,linkhuf s){ linkhuf p1,p2;//p原创 2015-02-06 19:25:39 · 303 阅读 · 0 评论 -
c++队列
#includeusing std::cin;using std::cout;using std::endl;typedef int type;namespace myqueue{ class queue { enum{q_size=100}; struct Node{ type data;原创 2015-03-09 12:51:12 · 494 阅读 · 0 评论 -
c++单向链表
#includeusing std::cin;using std::cout;using std::endl;namespace mynode{ typedef int type; struct Node { type data; Node *next; }; class node原创 2015-03-10 22:00:24 · 330 阅读 · 0 评论 -
数组
#include#include#includeusing std::cin;using std::cout;typedef int type;typedef struct array{ type *base;//基址 int index[3];//数组每维大小 int count[3];//用于计算,储存每维的元素个数,例:每面,每行,每列的元素个数};//初始化三维原创 2015-04-14 20:34:35 · 300 阅读 · 0 评论 -
树的孩子表示法(指针形式)
#include#include#include#define m 3typedef char type;typedef struct node{ type info; struct node *child[m];}node,*tree;tree root;//按照前序顺序输入一棵树tree createtree(){ int i; char原创 2015-02-02 22:28:15 · 1298 阅读 · 0 评论 -
树的括号表示+树的孩子表示线性结构实现
#include#include#include#define m 3#define MAX 20#define BMAX 50typedef char type;typedef struct node{ type info; int child[m];}treenode;treenode tree[MAX];//保存树int root;int lengt原创 2015-02-02 23:05:14 · 851 阅读 · 0 评论 -
prim算法
算法部分typedef struct edgedata//最小生成树的边信息{ int begin,end;//边起点,终点,长度 int length;}edge;void prim(Mgraph g,edge tree[M-1]){ edge temp; int d,minpos,j,k,min,v,i; //从第一个节点开始,所有两栖路径以原创 2015-02-04 19:38:16 · 420 阅读 · 0 评论 -
穿线二叉树
#include#include#includetypedef char type;typedef struct node{ type data; int ltag,rtag; struct node *lchild,*rchild;}binthrnode;typedef binthrnode *binthrtree;binthrtree pre=NULL;原创 2015-02-03 15:55:11 · 1688 阅读 · 0 评论 -
(ljb.h)邻接表
#include#include#define M 20typedef char type;typedef struct node//边表节点(边){ int adjvex;//邻接点 struct node *next;}EdgeNode;typedef struct vnode//头结点{ type vartex;//顶点信息 EdgeNode原创 2015-02-05 10:55:26 · 477 阅读 · 0 评论 -
Kruskal算法
#include"ljjz.h"typedef struct edgedata{ int beg; int end; int length;}edge;void QuickSort(edge edges[],int left,int right)//按边的权值进行快排{ edge x; int i,j,flag=1; if(left<rig原创 2015-02-05 10:52:23 · 339 阅读 · 0 评论 -
链队
#include#include#includetypedef int type;typedef struct Node{ type info; struct Node*next;}node;//队列声明,保存头指针,尾指针typedef struct{ node *front; node *rear;}queue;//初始化一个空队列并返回其原创 2015-01-30 17:42:57 · 480 阅读 · 0 评论 -
双向链表
#include#includetypedef int type;typedef struct Dnode{ type info; struct Dnode*prior; struct Dnode*next;}dnode;//返回一个建立的双链表头指针,head->next=NULL,head->prior-NULL;dnode* init(){ d原创 2015-01-30 17:43:43 · 434 阅读 · 0 评论 -
链栈
#include#includetypedef int type;typedef struct Node{ type info; struct Node*next;}node;//返回一个栈的头指针node*init(){ node*head=(node*)malloc(sizeof(node)); head->next=NULL; retu原创 2015-01-30 17:38:37 · 639 阅读 · 0 评论 -
稀疏矩阵线性表示
稀疏矩阵#include#include#include#define MAX 100typedef struct{ int data[MAX][MAX]; int m,n;}matrix;//一个普通矩阵typedef int spmatrix[MAX][3];//稀疏矩阵三元组表示法//一个普通矩阵的初始化void init(matrix*p,int m,i原创 2015-01-31 22:42:16 · 814 阅读 · 0 评论 -
稀疏矩阵十字链表表示
类型定义#include#include#include#define MAX 100/* 稀疏矩阵的十字链表表示: 非零元素节点与表头节点公用一种类型*/typedef struct matrixnode{ int row,col; struct matrixnode *right,*down; union { int val原创 2015-02-01 22:01:10 · 1174 阅读 · 0 评论 -
树的层号表示
#include#include#include#define m 3#define MAX 20typedef char type;typedef struct node{ type data; int child[m]; int parent;}treenode;//树的扩充表示typedef struct{ type data; i原创 2015-02-03 11:17:42 · 1809 阅读 · 0 评论 -
顺序表相关操作
#include#define MAX 100//定义顺序表的最大值//顺序表的定义typedef struct{ int l[MAX]; int size;//顺序表的长度}sequence_list;//函数功能:顺序表的初始化——置空表//函数参数:指向sequenc_list型变量的指针head//函数返回值:空//文件名:sequenc_list.h 函原创 2015-01-16 17:16:47 · 541 阅读 · 0 评论 -
图的深度优先搜索/广度优先搜索(邻接表实现)
//深度优先遍历图返回连通分量数-int dfstraverse(LinkedGraph q){ int i,count=0; for(i=0;i<q.n;i++) visitnode[i]=0; for(i=0;i<q.n;i++) if(!visitnode[i]) { printf("#DFS原创 2015-02-05 10:56:24 · 884 阅读 · 0 评论 -
(ljjz.h)邻接矩阵
#include#include#include#define FINITY 50000#define M 20typedef char vertextype;typedef int edgetype;typedef struct{ vertextype vexs[M];//定点信息 edgetype edges[M][M];//邻接矩阵 int n,e;/原创 2015-02-05 10:53:56 · 488 阅读 · 0 评论 -
普通树的非递归遍历
#include#include#include#define M 3#define MAX 300FILE*rf;void open(){ rf=fopen("tree.txt","r");}void off(){ fclose(rf);}void in(char *ch){ fscanf(rf,"%c",ch);}//以上为了输入方便,定义从文件原创 2015-04-29 19:49:14 · 1831 阅读 · 0 评论