
笔记
难搞难搞
这个作者很懒,什么都没留下…
展开
-
图的创建
typedef struct GNode* PtrToGNode;struct GNode{ int Nv;//顶点数 int Ne;//边数 WeightType G[MaxVertexNum][MaxVertexNum]; DataType Data[MaxVertexNum];//存顶点的数据};typedef PtrToGNode MGraph;//MGraph初始化//初始化一个有VertexNum个顶点但没有边的图typedef int Vertex;MGraph Cre原创 2020-07-17 20:40:16 · 291 阅读 · 0 评论 -
哈夫曼树的构造
typedef struct TreeNode* HuffmanTree;struct TreeNde { int Weighy; HuffmanTree Left, Right;};HuffmanTree Huffman(MinHeap H){ //假设H->Size个权值已经存在H->Elements[]->Weight里 int i; HuffmanTree T; BuildMinHeap(H);//将H->Elements[]按权值调整为最小堆 for原创 2020-07-01 22:53:20 · 193 阅读 · 0 评论 -
集合及运算
typedef struct { ElementType Data; int Parent;}SetType;//集合的运算//查找某个元素所在的集合int Find(SetType S[], ElementType X){ int i; for (i = 0; i < MaxSize && S[i].Data != X; i++); if (i >= Maxsize) return -1; for (; S[i].Parent >= 0; i = S原创 2020-06-27 22:30:51 · 145 阅读 · 0 评论 -
堆
typedef struct HeapStruct *MaxHeap;struct HeapStruct { ElementType *Elements; int Size; int Capacity;};//创建最大堆MaxHeap Create(int MaxSize){ MaxHeap H = malloc(sizeof(struct HeapStruct)); H->Elements = malloc((MaxSize + 1) * sizeof(ElementType))原创 2020-06-27 21:56:28 · 130 阅读 · 0 评论 -
二叉搜索树的查找,插入和删除
//二叉搜索树查找操作FindPosition Find(ElementType X, BinTree BST){ if (!BST) return NULL; if (X > BST->Data) return Find(X, BST->Right); else if (X < BST->Data) return Find(X, BST->Left); else return BST;}//循环实现Position IterFind(Ele原创 2020-06-26 21:36:42 · 129 阅读 · 0 评论 -
树的遍历
typedef struct TreeNode* BinTree;typedef BinTree Position;struct TreeNode { ElementType Data; BinTree Left; BinTree Right;};//先序遍历void PreOrderTraversal(BinTree BT){ if (BT) { printf("%d", BT->Data); PreOrderTraversal(BT->Left); PreOr原创 2020-06-26 19:46:07 · 164 阅读 · 0 评论 -
队列的链式存储实现
struct Node { int Data; struct Node* Next;};struct QNode { struct Node* rear; struct Node* front;};typedef struct QNode* Queue;Queue PtrQ;//出队int DeleteQ(Queue PtrQ){ struct Node* FrontCell; int FrontElem; if (PtrQ->front == NULL) { pr原创 2020-06-15 22:51:41 · 231 阅读 · 2 评论 -
队列的顺序存储实现
#define MaxSize<10>struct QNode{ int Data[MaxSize]; int rear; int front;};typedef struct QNode* Queue;//入队void AddQ(Queue PtrQ, int item){ if ((PtrQ->rear + 1) % MaxSize == PtrQ->front) { printf("队列满"); return; } PtrQ->rea原创 2020-06-15 22:21:16 · 244 阅读 · 0 评论 -
堆栈的链式存储实现
typedef struct SNode* Stack;struct SNode{ int Data; struct SNode* Next;};Stack CreateStack(){ Stack s; s = (Stack)malloc(sizeof(struct SNode)); s->Next = NULL; return s;}//判断堆栈s是否为空,若为空返回整数1,否则返回0int IsEmpty(Stack s){ return (s->Nex原创 2020-06-15 21:31:20 · 274 阅读 · 0 评论 -
堆栈的顺序存储实现
#include<iostream>using namespace std;class Stack {public: int Data[10]; int Top = -1;};//入栈void Push(Stack* PtrS, int item){ if (PtrS->Top == 10 - 1) { printf("堆栈满"); return; } else { PtrS->Data[++(PtrS->Top)] = item;原创 2020-06-15 20:23:13 · 214 阅读 · 0 评论 -
线性表的链式存储实现
typedef struct LNode * List;struct LNode {int Date;List Next;};//求表长int Length(List PtrL){List p = PtrL;int j = 0;while §{p = p->Next;j++;}return j;}//按序号查找List FindKth(int K, List PtrL){List p = PtrL;int i = 1;while (p != NULL &am原创 2020-06-13 22:16:43 · 172 阅读 · 0 评论 -
线性表的顺序存储实现
typedef struct LNode *List;struct LNode {int Date[10];int Last;};//初始化List MakeEmpty(){List PtrL;PtrL = (List)malloc(sizeof(struct LNode));PtrL->Last = -1;return PtrL;}//查找int Find(int a, List PtrL){int i = 0;while (i <= PtrL->Las原创 2020-06-13 22:13:19 · 120 阅读 · 0 评论