数据结构
复习
Pikepika
热爱可抵岁月漫长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
简单递归问题
有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。问第4个学生岁数,他说比第3个学生大2岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大2岁。最后问第1个学生,他说是10岁。请问第5个学生多大。解题思路:#include <stdio.h>int age(int n){ int c; if(n==1) c=10; //终止条件是10,开始增值age(n)=10里面的n是一个整体 else c=age(n-1)+2;//就原创 2021-08-23 17:04:52 · 275 阅读 · 0 评论 -
实现二叉树各种基本运算的算法
#include <stdio.h>#include <malloc.h>#define MaxSize 100typedef char ElemType;typedef struct node //struct作用:一种构造数据类型,结构体 { ElemType data; struct node *lchild;//指向struct node这个结构体类型 struct node *rchild原创 2021-08-23 15:34:46 · 1217 阅读 · 0 评论 -
职工信息的综合运算
#include <stdio.h>#include <malloc.h>typedef struct{ int no; //职工号 char name[10]; //姓名 int depno; //部门号 float salary; //工资数 }EmpType; //职工类型 typedef struct node{ EmpType data;原创 2021-08-22 19:00:23 · 1062 阅读 · 0 评论 -
希尔排序(shell sort)
设待排序的表有10个元素,其关键字分别为(9,8,7,6,5,4,3,2,1,0),说明采用希尔排序方法进行排序的过程。#include <stdio.h>#define MAXL 100typedef int KeyType;typedef char InfoType;typedef struct{ KeyType key; InfoType data; }RecType;void CreateList(RecType R[],KeyType keys[],int n)原创 2021-08-20 20:58:05 · 250 阅读 · 0 评论 -
快速排序(quick sort)
设待排序的表有10个元素,其关键字分别为(6,8,7,9,0,1,3,2,4,5)说明采用快速排序方法进行排序的过程。快速排序(Quick Sort)的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。#include <stdio.h>#define MAXL 100typedef int KeyType;typedef char InfoType;typedef原创 2021-08-20 20:27:30 · 1132 阅读 · 0 评论 -
冒泡排序(Bubble sort)
设待排序的表有10个元素,其关键字分别为(9,8,7,6,5,4,3,2,1,0),说明采用冒泡排序方法进行排序的过程。冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。Code:#include <stdio.h>#define MAXL 100 //最大长度typedef int KeyType; //定义关键字类型为inttypedef char InfoType; // 可以使用它来为类型原创 2021-08-20 15:31:36 · 1422 阅读 · 0 评论 -
删除一个单链表中元素值最大结点
#include <stdio.h>#include <malloc.h>typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LinkNode;void CreateListF(LinkNode *&L,ElemType a[],int n){ LinkNode *s; L=(LinkNode *)malloc(sizeof(LinkNode));原创 2021-08-20 11:39:49 · 3939 阅读 · 1 评论 -
有序单链表删除值域重复结点算法
已知一个有序单链表L(允许出现值域重复的结点),设计一个高效算法删除值域重复的结点,并分析算法的时间复杂度。解:由于是有序单链表,所以相同值域的结点都是相邻的。用p扫描递增单链表,若p所指结点的值域等于后继点的值域,则删除后者。实现代码如下:#include <stdio.h>#include <malloc.h>typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;原创 2021-08-20 08:58:30 · 2888 阅读 · 0 评论 -
单链表递增排序算法
#include <stdio.h>#include <malloc.h>typedef int ElemType;typedef struct LNode { ElemType data; struct LNode *next; //指向后继结点} LinkNode; //声明单链表结点类型void CreateListF(LinkNode *&L,ElemType a[],int n)//头插法建立单链表{ LinkNode *s; L原创 2021-08-19 23:15:13 · 2958 阅读 · 0 评论 -
实现顺序栈的各种基本运算的算法
#include <stdio.h>#include <malloc.h>#define MaxSize 100typedef char ElemType;typedef struct{ ElemType data[MaxSize]; int top;} SqStack;/* 1.初始化栈InitStack(&s),该运算创建一个空栈,由s指向它实际上就是分配一个顺序栈空间,并将栈顶指针设置为-1*/ void InitStack(SqStack原创 2021-08-19 19:28:46 · 10365 阅读 · 0 评论 -
直接插入排序(straight insertion sort)
#include <stdio.h>#define MaxSize 20typedef int KeyType;typedef char InfoType;typedef struct{ KeyType key; InfoType data;}RecType;void InsertSort(RecType R[],int n){ int i,j; RecType tmp; for(i=1;i<n;i++) //循环7次 { tmp=R[i]; //将原创 2021-08-19 11:10:35 · 280 阅读 · 0 评论 -
线性表基本运算在单链表中的实现
#include <stdio.h>#include <malloc.h>#define Maxsize 50;typedef int ElemType; //假设ElemType为int类型,使用以下自定义类型语句:typedef struct LNode { ElemType data; //存放元素值 struct LNode *next;//指向后继节点 }LinkNode; //单链表结点类型 //1.初始化线性表L原创 2021-08-18 11:16:24 · 973 阅读 · 0 评论 -
实现顺序表的各种基本运算的算法(超详细)
//顺序表基本运算算法#include <stdio.h>#include <malloc.h>#define MaxSize 50typedef char ElemType; typedef struct { ElemType data[MaxSize]; //存放顺序表元素 int length; //存放顺序表的长度} SqList; //顺序表的类型void CreateList(SqList *&L,ElemType a[原创 2021-08-08 21:26:10 · 19970 阅读 · 8 评论
分享