自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 数据结构C语言:遍历

邻接表的结构体定义将图转为邻接表打印邻接表广度遍历完整代码

2022-06-02 22:44:16 246

原创 数据结构邻接表

深度遍历图的深度遍历是一个递归的过程,类似于树的先序遍历。遍历过程:从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的点,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。广度遍历...

2022-06-02 22:38:07 81

原创 16、N皇后问题

1、确认有无位置bool place(int* paraSolution, int paraT){ int j; for (j = 1; j < paraT; j ++){ if ((abs(paraT - j) == abs(paraSolution[j] - paraSolution[paraT])) || (paraSolution[j] == paraSolution[paraT])) return false; } re

2022-05-29 22:10:53 123

原创 15、哈夫曼树

1、构建节点typedef struct { int weight; int parent, left, right;}HTNode, *HuffmanTree;2、代码实现void Select(HuffmanTree HT, int end, int *s1, int *s2){ int min1, min2; int i = 1; while(HT[i].parent != 0 && i <= end){

2022-05-29 22:09:05 62

原创 14、二叉树

1、建立队列及二叉树节点typedef struct BTNode{ char element; BTNode* left; BTNode* right;} typedef struct BTNodePtrQueue{ BTNodePtr* nodePtrs; int front; int rear;}2、初始化QueuePtr initQueue(){ QueuePtr resultQueuePtr = (QueuePtr)malloc(sizeof(struct B

2022-05-24 20:45:28 60

原创 压缩矩阵的转置

建立矩阵typedef struct Triple{ int i; int j; elem e;} typedef struct CompressedMatrix{ int rows,columns,numElements; Triple* elements;}初始化CompressedMatrixPtr initCompressedMatrix(int paraRows, int paraColumns, int paraElements,

2022-05-19 22:29:24 58

原创 二维数组与矩阵乘法

建立二维数组及矩阵typedef struct TwoDArray{ int rows; int columns; int** elements;} typedef struct TwoDStaticArray{ int rows; int columns; int elements[ROWS][COLUMNS];}初始化TwoDArrayPtr initTwoDArray(int paraRows, int paraColumns){ int i; TwoDArra

2022-05-19 22:25:57 64

原创 数据结构-循环队列

为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。(1)建立链表typedef struct CircleIntQueue{ int data[TOTAL_SPACE]; int head; int tail;}(2)初始化CircleIntQueuePtr initQueue

2022-05-17 21:58:26 85

原创 数据结构-链队列

链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素图 所示为链式队列的初始状态,此时队列中没有存储任何数据元素,因此 top 和 rear 指针都同时指向头节点。(1)建立链队列及其结点typedef struct LinkNode{ int data; LinkNode* next;}*LinkNodePtr; typedef struct LinkQueue{ LinkNodePtr front; L..

2022-05-17 21:51:42 115

原创 栈与递归及其应用

(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(" return %d\r\n", tempSum); return tempSum; }

2022-05-12 22:00:01 80

原创 数据结构 C 代码 3.3: 栈的应用 -- 表达式求值

代码#include <iostream>#include <cstring>#include <algorithm>#include <stack>#include <unordered_map>using namespace std;stack<int> num;stack<char> op;void eval(){ auto b = num.top(); num.pop(

2022-05-10 19:38:48 290

原创 数据结构 C 代码 3.2: 栈的应用 -- 括号匹配

压栈void push(CharStackPtr paraStackPtr, int paraValue) { // Step 1. Space check. if (paraStackPtr->top >= STACK_MAX_SIZE - 1) { printf("Cannot push element: stack full.\r\n"); return; }//Of if // Step 2. Update

2022-05-10 19:31:59 58

原创 数据结构 C 代码 3.1: 栈

入栈void Push( T x )template <class T>void seqStack<T>::Push ( T x){ if (top==MAX_SIZE-1) throw “溢出”; top++; data[top]=x; } 栈顶T GetTop( )template <class T>T seqStack<T>::GetTop ( ){ if (Empt

2022-05-10 19:25:44 71

原创 多项式相加

1.建立链表typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;} 2.初始化链表LinkList initLinkList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); tempHeader->coefficient = 0; tempHeader->exponent =

2022-05-06 20:53:47 55

原创 数据结构双链表

1.建立链表typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;} 2.链表初始化DLNodePtr initLinkList(){ DLNodePtr tempHeader = (DLNodePtr)malloc(sizeof(struct DoubleLinkedNode)); te

2022-05-03 22:11:37 58

原创 数据结构静态链表

1.建立链表typedef struct StaticLinkedNode{ char data; int next;}typedef struct StaticLinkedList{ NodePtr nodes; int* used;} 2.初始化链表ListPtr initLinkedList(){ ListPtr tempPtr = (ListPtr)malloc(sizeof(StaticLinkedList)); t

2022-05-03 22:05:45 55

原创 2.单链表

1、创建结构体链表typedef struct LinkNode{ char data; struct LinkNode *next;} LNode, *LinkList, *NodePtr;2、链表的初始化LinkList initLinkList(){ NodePtr tempHeader = (NodePtr)malloc(sizeof(LNode)); tempHeader->data = '\0'; tempHeader->next = NULL; re

2022-04-29 21:54:25 72

原创 1.顺序表

1.代码​#include <stdio.h>#include <malloc.h>#define LIST_MAX_LENGTH 10typedef struct SequentialList { int actualLength; int data[LIST_MAX_LENGTH];} *SequentialListPtr;void outputList(SequentialListPtr paraList) { for(in

2022-04-25 22:10:36 173

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除