- 博客(19)
- 收藏
- 关注
原创 图的遍历and邻接表
一.图的遍历 定义队列(用于广度优先) and 图 typedef struct GraphNodeQueue{ int* nodes; int front; int rear; }GraphNodeQueue, *QueuePtr; typedef struct Graph{ int** connections; //动态二位数组 int numNodes; } *GraphPtr; //队列 QueuePtr initQueue(){ QueuePtr resultQueue
2022-05-31 15:37:27
147
原创 哈夫曼树andNqueen
哈夫曼树 结点结构 typedef struct { int weight;//结点权重 int parent, left, right;//父结点、左孩子、右孩子 }HTNode, *HuffmanTree; 动态二维数组 typedef char ** HuffmanCode; 选择最小min void Select(HuffmanTree HT, int end, int *s1, int *s2) { int min1, min2; //遍历数组初始下标为 1 int i = 1;
2022-05-26 17:20:23
149
原创 二叉树的创建与遍历
二叉树的创建与遍历 //创建二叉树节点 typedef struct BTNode { char element; BTNode *left; BTNode *right; } BTNode, *BTNodePtr; //创建队列 typedef struct BTNodePtrQueue { BTNodePtr *nodePtrs; int front; int rear; } BTNodePtrQueue, *QueuePtr; //初始化队列 QueuePtr initQueue(
2022-05-24 18:29:56
159
1
原创 压缩矩阵的转置
压缩矩阵的转置 定义行列 typedef struct Triple { int i;//行 int j; //列 elem e; //值 } Triple, *TriplePtr; //压缩矩阵 CompressedMatrixPtr initCompressedMatrix(int paraRows, int paraColumns, int paraElements, int **paraData) { int i; CompressedMatrixPtr resultPtr = (C
2022-05-19 20:15:42
104
原创 二维数组与矩阵
二维数组与矩阵 /定义动态二维数组 typedef struct TwoDArray { int rows; int columns; int **elements; } TwoDArray, *TwoDArrayPtr; //定义静态二维数组 typedef struct TwoDStaticArray { int rows; int columns; int elements[ROWS][COLUMNS]; } TwoDStaticArray, *TwoDStaticArrayPtr;
2022-05-19 19:56:28
109
原创 循环队列work
循环队列 //定义循环队列 typedef struct CircleIntQueue { int data[TOTAL_SPACE]; int head; int tail; } *CircleIntQueuePtr; /生成循环链表 CircleIntQueuePtr initQueue() { CircleIntQueuePtr resultPtr = (CircleIntQueuePtr)malloc(sizeof(struct CircleIntQueue)); resultPt
2022-05-16 20:52:43
1005
原创 链队列work
链队列 链队列的节点 typedef struct LinkNode { int data; LinkNode *next; } *LinkNodePtr; 链队列 typedef struct LinkQueue { LinkNodePtr front; LinkNodePtr rear; } *LinkQueuePtr; 生成链队列 LinkQueuePtr initQueue() { //定义链表的头指针 和 尾指针 LinkQueuePtr resultPtr = (Link
2022-05-16 20:42:59
97
1
原创 累加和汉诺塔问题
累加递归 //定义函数 int addTo(int paraN) { int tempSum; //申请变量--求和 printf("entering addTo(%d)\r\n", paraN); if (paraN <= 0) { //结束递归循环的条件 printf(" return 0\r\n"); return 0; } else { //递归函数 tempSum = addTo(paraN - 1) + paraN; printf("
2022-05-11 20:46:48
107
原创 栈实现多项式求值
多项式求值 定义结构体 typedef struct { char S[100]; int top; }CHARStack; void InitStack(CHARStack *S) { S->top = -1; } push void Push(CHARStack* S, char ch) { if (S->top >= 99) { printf("栈满!\n"); exit(0); } else { S->top++; S->S[
2022-05-10 17:45:53
358
原创 栈的应用 括号匹配
关于栈的应用 (括号匹配) 对于一个字符串 用栈的数据结构去判断括号是否匹配 这是对栈的应用 也是对栈理解的更一步深入 定义结构体 typedef struct CharStack { int top; //栈顶参数 int data[STACK_MAX_SIZE]; //栈数组 } *CharStackPtr; 打印栈 void outputStack(CharStackPtr paraStack) { //循环打印栈 for (int i = 0; i <= par
2022-05-09 20:40:05
540
原创 3.1栈的形式
栈3.1 对于栈的理解 定义栈 typedef struct CharStack { int top; //栈顶 int data[STACK_MAX_SIZE]; // 栈 } *CharStackPtr; 打印栈 void outputStack(CharStackPtr paraStack) { for (int i = 0; i <= paraStack->top; i ++) { //循环打印 printf("%c ", paraStack->
2022-05-09 20:24:23
157
原创 数据结构 多项式加法
多项式加法 定义结构体 typedef struct LinkNode { int coefficient; int exponent; struct LinkNode *next; } *LinkList, *NodePtr; //链表头 LinkList initLinkList() { LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); //系数 tempHeader->coefficient = 0
2022-05-06 10:34:31
160
原创 4....静态链表
静态链表 在这里想先讲解一下自己对于静态链表的理解 静态链表自然一开始就固定的大小 你可以形象的理解为有头指针的结构体数组 这一点很关键 对于它的地址 则是一开始就分配好的固定大小 当然 下面代码: //定义静态链表节点 typedef struct StaticLinkedNode { char data; int next; } *NodePtr; typedef struct StaticLinkedList { NodePtr nodes; int *used; } *ListPt
2022-05-02 19:54:15
674
原创 3-----关于双线链表
3… 双向链表 //定义结构体 typedef struct DoubleLinkedNode { char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next; } DLNode, *DLNodePtr; 创建链表 DLNodePtr initLinkList() { //同理 动态申请链表头 //双向链表前驱与后继 DLNodePtr tempHeader = (DLNodePtr)mal
2022-05-02 19:04:34
743
原创 单链表----2work
单链表 //定义节点(结构体) typedef struct LinkNode { char data; struct LinkNode *next; } *NodePtr, *LinkList, LNode ; 建立新表链 LinkList initLinkList() { //动态申请一片空间给头指针 NodePtr tempHeader = (NodePtr)malloc(sizeof(LNode)); tempHeader->data = '\0'; tempHead
2022-04-28 21:42:54
1044
空空如也
无法解析导入 java.io.BufferedWriter
2022-11-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人