![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
congcongiii
记录代码生涯的点点滴滴
展开
-
合并两链表
合并两个链表:struct node *merge(struct node *h1,struct node *h2){ struct node *p1,*p2,*tail; p1 = h1->next; p2 = h2->next; h1->next = NULL; tail = h1; free(h2); while(p1 != NULL原创 2022-05-24 09:43:35 · 186 阅读 · 0 评论 -
先序中序求二叉树高度
#include <iostream>#include <bits/stdc++.h>using namespace std;int dfs(char pre[],char ino[],int m){ if(m == 0) { return 0; } else { int i; ...转载 2019-03-16 23:39:28 · 863 阅读 · 1 评论 -
数据结构实验之排序五:归并求逆序数
#include using namespace std;long long int cnt; //逆序数可能是个数值很大的数字,用long long int.void Merge(int a[], int l, int mid, int r) //归并:进来一个无序数组(已用mid进行了二分,一直mid、l、r)将进来的分为两部分的数组进行排序,后存入新开的t数组中{原创 2017-12-24 10:42:07 · 242 阅读 · 1 评论 -
数据结构实验之排序三:bucket sort 桶排序
#include using namespace std;int main(){ ios::sync_with_stdio(false);//用c++读入超时 int n; cin>>n; int i,a[101],x; memset(a,0,sizeof(a)); for(i = 0;i <= n - 1;i++) {原创 2017-12-23 22:28:18 · 377 阅读 · 0 评论 -
数据结构实验之排序二:交换排序
#include using namespace std;int cnt1,cnt2;int Partition(int a[],int low,int high){ int key = a[low]; a[0] = a[low]; while(low < high)//基于赋值排序时,当找到枢纽时 { while(low = key)//当原创 2017-12-23 22:02:51 · 184 阅读 · 0 评论 -
数据结构实验之排序一:一趟快排
#include using namespace std;void Partition(int a[],int low,int high){ int key = a[low]; a[0] = a[low]; while(low < high) { while(low = key) high--; a[low]原创 2017-12-23 21:11:56 · 238 阅读 · 0 评论 -
数据结构实验之查找七:线性之哈希表
#include using namespace std;int Hash(int num,int p){ int k; k = num % p; return k;}int main(){ int n,p; while(cin>>n>>p) { int i,a[2000],num,k; memset(a原创 2017-12-23 19:33:10 · 170 阅读 · 0 评论 -
数据结构实验之查找五:平方之哈希表
//哈希表:建立元素与数组下标的联系#include using namespace std;int cnt;int Hash(int num,int p){ int k; k = num % p; return k;}int main(){ ios::sync_with_stdio(false); int n,p; while(原创 2017-12-23 00:11:23 · 129 阅读 · 0 评论 -
数据结构实验之查找二:平衡二叉树
#include typedef int Elemtype;typedef struct BiTNode{ Elemtype data; int depth; struct BiTNode *lchild; struct BiTNode *rchild;}BiTNode,*BiTree;int max(int x,int y) //找两个数中的较大转载 2017-12-21 23:15:57 · 170 阅读 · 0 评论 -
数据结构实验之查找一:二叉排序树
#include using namespace std;int cnt;typedef struct BiTNode{ int data; struct BiTNode *lchild; struct BiTNode *rchild;} BiTNode,*BiTree;BiTree Create(BiTree T,int x){ if(T == N转载 2017-12-21 22:21:12 · 147 阅读 · 0 评论 -
数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
#include #include #include #include using namespace std;int map[1000][1000],tag[1000],a[1000];//map存储矩阵,tag存储标识符(遍历过为1,初始为0),a存储遍历后得到的数组int p;void BFS(int t,int n)//t为遍历起点,n为点的总个数{ queue原创 2017-11-23 09:00:06 · 1128 阅读 · 0 评论 -
二叉树的基本操作
//二叉树的基本操作//递归实现#include #include #include //二叉树的二叉链表存储表示//二叉树的定义typedef char TElemType;typedef struct BiTNode{ TElemType data; struct BiTNode *lchild; struct BiTNode *rchild;}原创 2017-11-01 16:25:23 · 220 阅读 · 0 评论 -
数据结构实验之栈与队列六:下一较大值(二)
数据结构实验之栈与队列六:下一较大值(二)Time Limit: 150MS Memory Limit: 8000KBSubmit StatisticProblem Description对于包含n(1Input 输入有多组,第一行输入t(1以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依次输入本组的n个元素。Ou原创 2017-10-17 09:23:01 · 282 阅读 · 0 评论 -
由先序和中序还原二叉树
#include #include #include typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild; struct BiTNode *rchild;} BiTNode,*BiTree;int Search(char pre[],char原创 2017-11-11 20:55:32 · 352 阅读 · 0 评论 -
二分查找的非递归实现
二分查找的前提条件:1.顺序存储2.数列有序int BinSearch(SqList * L,int l,int r,int k){ while(l <= r) { int mid; mid = (l + r)/2; if(L->elem[mid] == k) { return mid;原创 2017-10-06 21:48:58 · 238 阅读 · 0 评论 -
顺序表逆置 实现前m与后len-m的互换
Time Limit: 80MS Memory Limit: 600KBSubmit StatisticProblem Description一个长度为len(1注意:交换操作会有多次,每次交换都是在上次交换完成后的顺序表中进行。Input第一行输入整数len(1第二行输入len个整数,作为表里依次存放的数据元素;第三行输入整数t(1之后转载 2017-10-06 18:31:32 · 556 阅读 · 0 评论 -
排序--归并排序
归并排序 : 速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。归并排序的实现大体可分为两步 : 排序 和 归并;排序的思路:通过递归,把之前无序的大数列逐渐分割成一个个小数列,知道每个数列只含一个数字,此时,各数列有序;(ps : 通过递归实现就一定要有递归结束的条件 : l == r,到l == r时,被分割开的小的数列里只含一个数字,再不能向下原创 2017-08-24 09:55:04 · 199 阅读 · 0 评论 -
有关哈希表
用来取余的数p:1.p应小于表长2.p尽量取素数3.p不含20以下的质因子(2 3 5 7 11 13 17 19 )另:将p的值取得大一点时,取余后的得到的数就不容易重复,add就不会一直进行运算找地址,省时;但是,这需要把哈希表长设置的足够大,因为,假设某数进来除留取余后在表的后边,如果一直运算(如++)找地址的话就可能会超出表长;原创 2017-08-21 09:54:55 · 244 阅读 · 0 评论