2024.7.24 作业

ops/2024/12/22 9:51:33/

1.二叉树的创建、遍历自己实现一遍

bitree.h

#ifndef BITREE_H
#define BITREE_H#include <myhead.h>typedef char datatype;typedef struct Node
{datatype data;struct Node *left_child;struct Node *right_child;
}Node,*BiTreePtr;//创建二叉树
BiTreePtr tree_create();//先序遍历
void prio_order(BiTreePtr B);//中序遍历
void in_order(BiTreePtr B);//后序遍历
void post_order(BiTreePtr B);#endif

bitree.c 

#include "bitree.h"//创建二叉树
BiTreePtr tree_create()
{char data = 0;scanf(" %c",&data);if( data=='#'){return NULL;}BiTreePtr p = (BiTreePtr)malloc(sizeof(Node));if( NULL==p ){printf("节点申请失败\n");return NULL;}p->data = data;p->left_child = tree_create();p->right_child = tree_create();return p;
}//先序遍历
void prio_order(BiTreePtr B)
{if( NULL==B ){return ;}printf("%c\t",B->data);prio_order(B->left_child);prio_order(B->right_child);
}//中序遍历
void in_order(BiTreePtr B)
{if( NULL==B ){return ;}in_order(B->left_child);printf("%c\t",B->data);in_order(B->right_child);
}//后序遍历
void post_order(BiTreePtr B)
{if( NULL==B ){return ;}post_order(B->left_child);post_order(B->right_child);printf("%c\t",B->data);
}

main.c 

#include "bitree.h"int main(int argc, const char *argv[])
{BiTreePtr B = tree_create();if( NULL==B ){printf("创建失败\n");return -1;}printf("创建成功\n");printf("先序遍历结果为:");prio_order(B);printf("\n");printf("中序遍历结果为:");in_order(B);printf("\n");printf("后序遍历结果为:");post_order(B);printf("\n");return 0;	
}

2.把所有的排序算法自己实现一遍

#include <myhead.h>void bubble_sort(int *arr,int n)              //冒泡排序
{for(int i=1;i<n;i++){int flag=0;for(int j=0;j<n-i;j++){if(arr[j]>arr[j+1]){flag=1;int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}if(flag==0){break;}}printf("冒泡排序成功\n");
}void select_sort(int *arr, int n)      //选择排序
{for(int i=0;i<n;i++){int x=i;for(int j=i+1;j<n;j++){if(arr[x]>arr[j]){x=j;}}if(x!=i){int temp = arr[x];arr[x]= arr[i];arr[i] = temp;}}printf("选择排序成功\n");
}void putout(int *arr,int n)                  //输出
{printf("当前元素为:");for(int i=0;i<n;i++){printf("%d\t",arr[i]);}printf("\n");
}void insert_sort(int *arr, int n)         //插入排序
{int i,j;for(i=1;i<n;i++){int x=arr[i];for(j=i-1;j>=0 && arr[j]>=x;j--){arr[j+1]=arr[j];}arr[j+1]=x;}printf("插入排序成功\n");
}int part(int *arr,int low,int high)
{int x=arr[low];while(high>low){while( arr[high]>=x && high>low ){high--;}	arr[low]=arr[high];while( arr[low]<=x && high>low ){low++;}	arr[high]=arr[low];}arr[low]=x;return low;
}void quick_sort(int *arr,int low,int high)     //快速排序
{if(low>=high){return;}int mid=part(arr,low,high);quick_sort(arr,low,mid-1);quick_sort(arr,mid+1,high);printf("快速排序成功\n");
}int main(int argc,const char *argv[])
{int arr[]={7,8,5,2,3,0,1,9};int len =sizeof(arr)/sizeof(arr[0]);bubble_sort(arr,len);putout(arr,len);int brr[]={7,8,5,2,3,0,1,9};select_sort(brr,len);putout(brr,len);int crr[]={7,8,5,2,3,0,1,9};insert_sort(crr,len);putout(crr,len);int drr[]={7,8,5,2,3,0,1,9};quick_sort(drr,0,len-1);putout(drr,len);return 0;
}

思维导图


http://www.ppmy.cn/ops/85859.html

相关文章

共享充电桩语音ic方案,展现它的“说话”的能力

随着电动汽车的普及&#xff0c;充电设施的便捷性、智能化需求日益凸显&#xff0c;共享充电桩语音IC应运而生&#xff0c;成为连接人与机器、实现智能交互的桥梁。本文将为大家介绍共享充电桩语音ic的概述、应用词条以及优势&#xff0c;希望能够帮助您。 一、NV170D语音ic概述…

以maven方式引入第三方jar包

windows环境下 G:\work\gitpush\bms\lib是第三方jar包目录 cmd : G:\work\gitpush\bms\lib mvn install:install-file -DgroupIdcom.aliyun -DartifactIdaliyun-sdk-mns -Dversion1.1.9.1 -Dpackagingjar -Dfilealiyun-sdk-mns-1.1.9.1.jar xml中 <dependency><g…

MySQL 中常见的几种高可用架构部署方案

MySQL中常见的几种高可用架构部署方案主要包括以下几种&#xff1a; 1. 主从复制&#xff08;MySQL Replication&#xff09; 概述&#xff1a; MySQL Replication是官方提供的主从同步方案&#xff0c;用于将一个MySQL实例&#xff08;主服务器&#xff09;的数据自动复制到…

基于STM32瑞士军刀--【FreeRTOS开发】学习笔记(一)|| RISC / 底层代码执行步骤 / 汇编指令

本篇文章基于韦东山老师讲课笔记和自己理解编写。 RISC ARM芯片属于精简指令集计算机(RISC&#xff1a;Reduced Instruction Set Computing)&#xff0c;它所用的指令比较简单&#xff0c;有如下特点&#xff1a; ① 对内存只有读、写指令 ② 对于数据的运算是在CPU内部实现 …

KunDB4.0:安全能力与Oracle兼容性提升,支持跨系统多租户部署

KunDB是星环科技自主研发的分布式交易型数据库&#xff0c;高度兼容Oracle和MySQL&#xff0c;提供数据强一致、高可用、高性能、高扩展、应用透明等能力&#xff0c;可在云上和物理机上容器化部署运行&#xff0c;一站式解决企业数据存储、管理、计算与安全性问题。 过去半年…

医疗器械上市欧美,需要什么样的网络安全相关申报文件?

医疗器械在欧美上市时&#xff0c;需要提交的网络安全相关申报文件主要包括以下几个方面&#xff0c;这些要求基于欧美地区的法律法规和监管机构的指导文件。 一、美国FDA要求 1. 网络安全管理计划 内容&#xff1a;制造商需要提交一份网络安全管理计划&#xff0c;该计划应包含…

java面向对象进阶进阶篇--《JDK8,JDK9接口中新增的方法、接口的应用、适配器设计模式》

个人主页→VON 收录专栏→java从入门到起飞 接口→接口和接口与抽象类综合案例 一、JDK8接口中新增的方法 在JDK 8中&#xff0c;接口新增了几个重要的特性和方法&#xff0c;其中最显著的是默认方法&#xff08;Default Methods&#xff09;和静态方法&#xff08;Static Met…

Vue指令之v-model详解

v-model详解 v-model与表单 在Vue.js中&#xff0c;v-model是用于在表单元素和应用程序状态之间创建双向绑定的指令。它可以简化数据的输入和管理。以下是一些常见的用法&#xff1a; 1. 输入框 (input) 对于文本输入框&#xff0c;v-model可以同步用户输入的值与 Vue 实例…