
数据结构
photores1st
这个作者很懒,什么都没留下…
展开
-
队列简单操作集(C语言)
顺序存储typedef int Position;struct QNode { ElementType *Data; /* 存储元素的数组 */ Position Front, Rear; /* 队列的头、尾指针 */ int MaxSize; /* 队列最大容量 */};typedef struct QNode *Queue; Queue CreateQueue( int MaxSize ){ Queue Q = (Queue)m原创 2020-09-23 22:41:46 · 284 阅读 · 0 评论 -
堆栈简单操作集(c语言)
顺序存储ypedef int Position;struct SNode { ElementType *Data; /* 存储元素的数组 */ Position Top; /* 栈顶指针 */ int MaxSize; /* 堆栈最大容量 */};typedef struct SNode *Stack; Stack CreateStack( int MaxSize ){ Stack S = (Stack)malloc(sizeof(stru原创 2020-09-23 22:24:51 · 786 阅读 · 0 评论 -
线性表操作集(c语言)
线性表操作集顺序存储typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last;}; /* 初始化 */List MakeEmpty(){ List L; L = (List)malloc(sizeof(struct LNode)); L->Last = -1; return L;原创 2020-09-23 21:40:16 · 311 阅读 · 0 评论 -
邻接矩阵图的操作集
邻接矩阵图的操作集图的建立#include <stdio.h>#include <stdlib.h>#define weighttype int#define maxvertexnum 100typedef int vertex;//邻接矩阵操作//图struct Mgnode { int Nv,Ne; weighttype G[maxvertexnum][maxvertexnum];};typedef struct Mgnode *Mgraph;//边原创 2020-07-24 21:46:22 · 767 阅读 · 0 评论 -
连通集(浙大数据结构习题)
连通集(浙大数据结构习题)#include<stdio.h>#include <stdlib.h>#define maxsize 10#define false 0#define true 1typedef int vertex; //顶点下标typedef int weighttype;//图的邻接表建立//1.图的节点 边,邻接表节点 头结点指针数组 图 typedef struct edgenode *edge;struct edgenode原创 2020-06-18 17:25:36 · 943 阅读 · 0 评论 -
链式队列操作集
链式队列操作集typedef struct lnode *list;struct lnode { int data; list nextnode;};struct qnode { list front, gear; int Maxsize;};typedef struct qnode *qlist;建立空队列qlist makeq() { qlist q = (qlist)malloc(sizeof(struct qnode)); q->front = NULL; q原创 2020-06-18 17:12:20 · 221 阅读 · 0 评论 -
无头结点的链表顺序插入
无头结点的链表顺序插入按照大小顺序插入时需要记录插入位置前面一个节点的指针,因此使用两个指针对链表进行遍历,另外,用函数对无头链表进行插入等操作,要用一个指针来进行而且输入要使用指针的地址,否则返回之后找不到链表的头了typedef struct listnode *list;struct listnode{ int data; list next;};int insert(int n, list *q) { list temp = (list)malloc(sizeof(struct l原创 2020-06-18 16:50:23 · 1216 阅读 · 0 评论 -
# File Transfer
File Transfer正常思路struct setnode { int data; /*data好像没啥屁用还要来一遍遍历,赶紧滚吧*/ int parent;}set[maxsize];int findp(setnode s[], int x) { /*找到根结点*/ int i; for (i = 0; i < maxsize&&s[i].data != x; i++); //严重增加时间复杂度 if (i >= maxsize)原创 2020-06-09 20:09:37 · 195 阅读 · 0 评论 -
huffman树的建立
huffman树的建立Huffman树:所有结点带权路径长度之和最小的树将权重结点(left right设为null)输入堆的指针数组中,再排成最小堆,每次取出两个,建立新结点t,把两个最小结点挂在t上,再将t插入最小堆,每个结点合并一次,共需h->size次typedef struct treenode { int weight; huffmantree left; huffmantree right;}*huffmantree;typedef struct hfnode {原创 2020-06-07 18:36:13 · 362 阅读 · 0 评论 -
最大堆的顺序存储操作集
最大堆的顺序存储操作集typedef struct hnode { int *data; int size; int maxsize;}*heap;最大堆的根结点比所有子树节点都大空堆的建立#define maxdata 1000#define false 0#define true 1heap create(int N) { heap h = (heap)malloc(sizeof(struct hnode)); h->data = (int *)malloc(N *原创 2020-06-07 16:17:36 · 199 阅读 · 0 评论 -
二叉搜索树的操作(c语言实现)
二叉搜索树的操作(c语言实现)二叉搜索树(Binary Search Tree), 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。 typedef struct treenode *Bitree;st原创 2020-06-06 22:22:09 · 298 阅读 · 0 评论 -
平衡二叉树的插入调整(C语言)
平衡二叉树(C语言)平衡二叉树的插入与调整左右单旋左右单旋avltree Lrotation(avltree A) { /*左单旋*/ avltree B = A->left; A->left = B->right; B->right = A; A->height = getheight(A); B->height = getheight(B); return B;}avltree Rrotation(avltree A) { /*右单旋*/原创 2020-06-06 21:50:21 · 666 阅读 · 0 评论