- 博客(12)
- 收藏
- 关注
原创 数据结构之排序(四)
归并排序(空间复杂度是排序中最大的:O(n))#include<stdio.h>#include<stdlib.h>int *B = (int *)malloc(n* sizeof(int));//建立一个辅助数组Bvoid Merge(int A[], int low, int mid, int high) { int i,j,k; for (k = low;k <= high;k++) B[k] = A[k];//全部复制到b中...
2022-04-18 15:42:15 899
原创 数据结构之排序(三)
选择排序void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp;}//直接选择排序void selectSort(int A[], int n) { for (int i = 0;i < n - 1;i++) { int min = i; for (int j = i + 1;j < n;j++) { ...
2022-04-17 12:09:18 854
原创 数据结构之排序(二)
交换排序//冒泡排序void swap(int &a, int&b) { int temp = a; a = b; b = temp;}void BubbleSort(int A[], int n) { int flag,i,j; for (i = 0;i < n - 1;i++) flag = false;//表示本次冒泡是否发生交换的标志 for (j = n - 1;j > i;j--) { ...
2022-04-16 11:46:57 820
原创 数据结构之排序(一)
插入排序//直接插入排序void InsertSort(int A[], int n) { int i, j; for (i = 2;i <= n;i++) { if (A[i] < A[i - 1]) { A[0] = A[i];//复制为哨兵,不存元素 for (j = i - 1;A[0] < A[j];--j) A[j + 1] = A[j]; ...
2022-04-15 16:52:10 828
原创 数据结构之图的遍历
#include<stdio.h>bool visited[MAX_VERTEX_NUM];//用辅助队列的方式进行广度优先排序void BFSTraverse(Graph G) { for (int i = 0;i < G.vexnum;++i) { visited[i] = false; } InitQueue(Q); for (int i = 0;i < G.vexnum;++i) { if (!visite...
2022-04-10 11:32:28 919
原创 数据结构之线索二叉树
一 .二叉树线索化#include<stdio.h>typedef struct ThreadNode { int data; struct ThreadNode *lchild, *rchild; int ltag,rtag;}ThreadNode,*ThreadNode;//对二叉树线索化ThreadNode *pre = NULL;void visit(ThreadNode *q) { if (q->lchild == NULL) {...
2022-04-07 11:57:03 796 1
原创 数据结构之串
#define MAXLEN 20typedef struct { char ch[MAXLEN]; int length;}SString;//求子串bool SubString(SString &Sub, SString S, int pos, int len) { if (pos + len + 1 > S.length) return false; for (int i = pos;i < pos + len;i++) {...
2022-04-03 17:28:45 949
原创 数据结构之队列
一 顺序存储#include<stdio.h>#define MaxSize 10typedef struct { int data[MaxSize]; int front, rear;}SqQueue;void InitQueue(SqQueue &Q) { Q.rear = Q.front = 0;}//初始化bool QueueEmpty(SqQueue &Q) { if (Q.rear == Q.front) ...
2022-03-31 15:00:49 82 1
原创 数据结构之栈
顺序栈typedef struct { int data[MaxSize]; int top;}SqStack;void InitStack(SqStack &S) { S.top = -1;}//初始化bool StackEmpty(SqStack S) { if (S.top == -1) return true; else return false;}//判定是否为空bool Push(SqStack &a...
2022-03-30 11:50:49 1006
原创 链表例题之表长
在一个长度为 n ( n>1 )的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。A删除单链表中的第一个元素B删除单链表中的最后一个元素C在单链表第一个元素前插入一个新元素D在单链表最后一个元素后插入一个新元素A头指针是指向第一个元素(结点)的指针。当删除单链表中的第一个元素时只需要将头指针指向第二个元素,然后释放第一个元素储存空间申请的内存。与链表长度无关。ListNode *temp = head->next;head->
2022-03-29 11:31:26 2356 1
原创 数据结构之线性表
链表#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>typedef struct LNode { int data; struct LNode* next;}LNode, *LinkList;bool InitList(LinkList &L){ L = (LNode*)malloc(sizeof(LNode)); if (L == NULL)...
2022-03-27 12:22:16 1292
原创 数据结构之线性表
顺序表 (动态分配):#include<stdio.h>#include<stdlib.h>#define InitSize 10//顺序表的初始长度typedef struct { int *data; int MaxSize; int length;}SeqList;void InitList(SeqList &L) { L.data = (int*)malloc(InitSize * sizeof(int)); L....
2022-03-26 11:18:34 1484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人