自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构半学期复习

**数据结构**1、**线性结构** 1.1 线性表 1.2 堆栈 1.3 队列2、**树** 2.1 二叉树 2.2 二叉搜索树/二叉查找树 2.3 平衡二叉树 2.4 树的应用 2.4.1 堆 2.4.2 哈夫曼树 2.4.3 集合3、**散列查找**4、**图**5、**排序**1.1 线性表顺序存储顺序表类型:typedef int Position;typedef struct LNode * PtrTo

2021-11-10 13:44:15 522

原创 OJ线性表习题线性、链式存储

1、掌握线性表的顺序存储实现方法;描述用顺序存储的方式(数组)实现线性表的MakeEmpty()、Find()、Insert()、Delete()、Length()等操作。输入输入第1行是一个整数n,表示之后还有n行输入。每行输入表示对线性表的一条操作指令,格式是“指令编号 参数1 参数2(如有)”。指令编号为1,表示Insert操作,此时参数1为插入的元素值,参数2为所插入元素在线性表中的位序。指令编号为2,表示Delete操作,此时只有一个参数,即待删除元素在线性表中的位序。指令编号为3,表示F

2021-10-19 21:08:49 571

原创 数据结构 3.3堆栈

一、堆栈的定义堆栈可以认为是 具有一定约束的 线性表,插入和删除操作 都作用在一个称为 栈顶(Top)的端点位置。对堆栈的主要操作是 在序列的末尾插入元素和删除元素。通常把数据插入叫做 压入栈,而数据删除叫做 弹出栈。所以最后入栈的数据将最先弹出,因此堆栈也被称为 后入先出表。二、堆栈的实现有顺序和链式两种形式。1、栈的顺序存储实现顺序栈类型:typedef int Position;typedef struct SNode* PtrToSNode;struct SNode{ El

2021-10-17 16:23:28 309

原创 数据结构第2版 3.4队列

一、队列的定义对于排队问题,需要有一种能解决共性问题的数据序列的管理组织方式,在这个方式中,多个数据构成一个有序序列,而对这个有序序列的操作(比如插入、删除)有一定要求:只能在一端插入,而在另一端删除。这样的数据组织方式就是 “队列” 。队列 也是一个有序线性表,但队列的插入和删除操作是分别在线性表的两个不同端点进行的。队列简称 “队”,是一种运算受限的线性表。队列只能选取一个端点进行插入操作,另一个端点进行删除操作。把进行插入操作的一端称作 队尾(rear)把进行删除操作的一端称作 队首 或

2021-10-10 21:26:25 286

原创 数据结构 合并两个有序表

//有两个 有序表 LA和 LB,将它们合并成一个有序表 LC,要求 LC 也是有序 //链表 #include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode;struct Node { ElementType Data; PtrToNode Next;};typedef PtrToNode List;List Create

2021-10-10 20:34:10 1728

原创 数据结构 引子

事先说明,我用的课本是陈越主编的《数据结构》第2版1、递归输出1~N课本代码及我的解释:#include<stdio.h>void PrintN(int N) //先定义函数{ if(N>0) //循环条件 { PrintN(N-1);//原先没运行之前我想不通为什么就可以顺序输出,其实这里表示调用PrintN()函数//也就是说在执行 printf N 下面的语句之前,先解决了上面的 PrintN(),直到遇到了 PrintN(1),它里面的 PrintN(0) 执

2021-09-15 18:38:33 148

原创 十大经典排序算法

以下内容是从百度搜索整理而来,有的C语言程序设计第三版中有讲到,我就略写了十大经典排序算法十大排序算法有 插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序、桶排序、基数排序。相关概念:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。1、冒泡排序冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它

2021-09-14 15:39:44 980

原创 字符型数据的输入输出 运算

字符的输入输出可以调用函数 getchar()、putchar()、scanf()、printf()。getchar() 函数和 putchar() 函数只能处理单个字符的输入和输出。scanf()函数和 printf() 函数除了处理 整型 数据和 浮点型 数据的输入输出外,也可以处理 字符型 数据的输入输出。此时,在函数调用的格式控制字符串中 相应的格式控制说明为 %c 。#include<stdio.h>int main(){//printf(""); char s[80]=

2021-08-14 19:40:25 5395 2

原创 C语言程序设计 练习7-5~7-8

练习7-5原题:给二维数组赋值时,如果把列下标作为外循环的循环变量,行下标作为内循环的循环变量,输入的数据在二维数组中该如何存放?用下列 for 语句替换例7-7中的对应语句,将输入的6个数存入二维数组中,假设输入数据不变,输出什么?与例7-7中的输出结果一样吗?为什么?for(j=0;j<2;j++) for(i=0;i<3;i++) scanf("%d",&a[i][j]);把例7-7的代码贴一下吧#include<stdio.h>int main(

2021-07-25 21:42:05 749

原创 C语言程序设计 9.1输出平均分最高的学生信息

例9-1:假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入n个学生的成绩信息,计算并输出平均分最高的学生信息。测试数据:3101 Zhang 78 87 85102 Wang 91 88 90103 Li 75 90 84课本代码:#include<stdio.h>struct student //学生信息结构定义 结构名student { int num;//类型名 结构成员名1 char name[10]; int computer,Engl

2021-07-18 21:49:47 3361

原创 C语言程序设计 8.2角色互换

例8-3:有两个角色分别用变量a和b表示。//通过函数调用来交换变量值 的示例程序 #include<stdio.h>void s1(int x,int y),s2(int *px,int *py),s3(int *px,int *py);int main(){ int a=1,b=2; int *pa=&a,*pb=&b; s1(a,b);//使用变量a b调用函数s1()//s1被调用时,实参a b的值传递给了形参x y,在s1中实现了x y的交换//但当

2021-07-18 19:53:37 2860

原创 C语言程序设计 密码开锁 指针的介绍

例8-1 :利用指针模拟密码开锁游戏。课本给出的代码//获取密码的两种方法#include<stdio.h>int main(){ int x=5342;//变量x用于存放密码值5342//程序中定义了变量x来存放密码,再定义一个特殊的指针变量p,用于存放变量x的地址//这样既可以通过变量名x直接得到密码值,也可以在不知道变量名的情况下,通过指针变量p所存放的x的地址 间接找到密码值 int *p=NULL;//定义整型指针变量p,NULL值为0,代表空指针 p=&

2021-07-18 18:17:06 809

原创 C语言程序设计 例7-13 将字符串中的数字字符转出为十进制整数

例7-13原题:输入一个以回车符为结束标志的字符串(少于10个字符),提取其中的所有数字字符(‘0’、…、‘9’),将其转换为一个十进制整数输出。由于字符串少于10个字符,数组长度就取其上限10,以回车符 ‘\n’ 作为输入结束符。课本代码:#include<stdio.h>int main(){ int i,number; char s[10]; //输入字符串 printf("Enter a string: "); i=0; while((s[i]=getchar())

2021-07-17 22:19:55 4352

原创 C语言程序设计 例7-12

例7-12原题:输入一个以回车符为结束标志的字符串(少于80个字符),统计其中数字字符(‘0’、…、‘9’)的个数。由于字符串少于80个字符,数组长度就取其上限80,以回车符 ‘\n’ 作为输入结束符。课本代码:#include<stdio.h>int main(){ int count,i;//计数count,变量 i char s[80];//定义字符串s printf("Enter a string: ");//输入提示 i=0; while((s[i]=ge

2021-07-17 21:11:49 981

原创 C语言程序设计 判断回文例7-11

例7-11原题:输入一个以回车符为结束标志的字符串(少于80个字符),判断该字符串中心对称,如“abcba”、“abccba”是回文,“abcdba”不是回文。在C语言中,字符串的存储和运算可以用一维字符数组来实现。数组长度取上限80,以回车符 ‘\n’ 作为输入结束符。课本的源码及我的理解:#include<stdio.h>innt main(){ int i,k;//两个变量,一个从前移动,一个从后移动 char line[80];//定义字符串 printf("Enter

2021-07-17 20:56:31 4308 1

原创 C语言程序设计 例7-10

例7-10原题:定义函数 day_of_year (year, month, day),计算并返回年月日对应的是该年的第几天。例如:调用 day_of_year (2000, 3, 1) 返回61,调用 day_of_year (1981, 3,1) 返回60。因为2000是闰年,1981不是闰年。判别闰年的条件:能被4整除但不能被100整除,或能被400整除。emmmm…我直接给源码吧这复习到了之前的函数的定义、调用还有关系表达式#include<stdio.h>int day_o

2021-07-17 18:12:52 954 2

原创 C语言程序设计 例7-9

例7-9原题:输入一个正整数n(1<n<=6),根据下式生成一个nxn的方阵,将该方阵转置(行列互换)后输出。a[i][j]=i*n+j+1(0<=i<n, 0<=j<n)我的代码及解释:#include<stdio.h>int main(){ int n; scanf("%d",&n); int i,j,a[6][6]; for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=i*

2021-07-17 11:01:28 1345

原创 C语言程序设计 二维数组的初始化 矩阵术语与数组下标的关系

二维数组的初始化有两种1、分行赋初值2、顺序赋初值两个的区别就是一个用了中括号,一个不用分行赋初值的例子有:int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};所以我们得到的数组为1 2 34 5 67 8 9但是如果你想要顺序赋初值,那么上面的数组写法为int a[3][3]={1,2,3,4,5,6,7,8,9};二维数组也可以只针对部分元素,比如static int b[4][3]={{1,2,3},{},{4,5}};上式表示只对b数组第0行

2021-07-17 10:36:15 1048

原创 C语言程序设计 例7-8

例7-8原题:定义一个3x2的二维数组a,数组元素的值由下式给出,按矩阵的形式输出a。a[i][j]=i+j(0<=i<3,0<=j<2)我的代码#include<stdio.h>int main(){ int a[3][2]; int i,j; for(i=0;i<3;i++) for(j=0;j<2;j++) { a[i][j]=i+j; } for(i=0;i<3;i++) for(j=0;j<2

2021-07-17 10:10:24 475

原创 C语言程序设计 例7-7

例7-7原题:将1个3x2的矩阵存入1个3x2的二维数组中,找出最大值以及它的行下标和列下标,并输出该矩阵。题目给出的测试数据3 210 -96 -1我的代码:#include<stdio.h>int main(){ int a[3][2]; int i,j; for(i=0;i<3;i++) for(j=0;j<2;j++) scanf("%d",&a[i][j]); int max=a[0][0],h=0,l=0; for(i=0

2021-07-16 21:14:48 466

原创 C语言程序设计 练习7-1~7-4

练习7-1 原题:将7-3程序中的break语句去掉,输出结果会有变化吗?假设输入数据不变,输出什么?我们先来看例7-3中的源码#include<stdio.h>int main(){ int i,flag,x; int a[5]; printf("Enter 5 integers: "); for(i=0;i<5;i++) scanf("%d",&a[i]); printf("Enter x: "); scanf("%d",&x); fla

2021-07-16 19:44:10 495 2

原创 C语言程序设计 例7-6

例7-6原题:调查电视节目受欢迎程度。某电视台要调查观众对该台8个栏目(1~8)的受欢迎情况,共调查1000位观众,现要求编写程序,输入每一位观众的投票情况(每位观众只能选择一个最喜欢的栏目投票),统计输出各栏目的得票情况。课本的代码及我的理解#include<stdio.h>int main(){ int i,response; int count[9];//数组下标对应的编号,不使用count[0] for(i=1;i<=8;i++) count[i]=0;//各

2021-07-13 21:46:01 1255

原创 C语言程序设计 例7-5

例7-5 原题:选择排序法。输入一个正整数n(1<n<=10),再输入n个整数,用选择法将它们从小到大排序后输出。课本给出源程序及我的理解//选择排序法#include<stdio.h>int main(){ int i,index,k,n,temp; //依次输入用到i,中间量index,从第一项到倒数第二项的k,输入个数n,交换用到中间变量temp int a[10]; //定义一个长度为10的数组 printf("Enter n: ");//提示输入数字

2021-07-13 20:00:05 2344

原创 C语言程序设计例7-4

例7-4原题:输入一个正整数n(1<n<=10),再输入n个正整数,将它们存入数组a中。条件1:输出最小值和它所对应的下标条件2:将最小值与第一个数交换,输出交换后的n个数。课本给出的代码及我的理解#include<stdio.h>int main(){ int i,index,n; //定义变量,下标,n个数 int a[10]; //定义长度为10的数组 printf("Enter n: "); //输入提示 scanf("%d",&n);

2021-07-06 21:26:57 1159

原创 C语言程序设计例7-3 顺序查找法

例7-3原题:输入5个整数,将它们存入数组a中,再输入1个数x,然后在数组中查找x,如果找到,输出相应的最小下标,否则,输出“Not Found”。课本给出源码及我的理解#include<stdio.h>int main(){ int i,flag,x; //需要用到的量 int a[5]; //定义数组 printf("Enter 5 integers: "); //提示 for(i=0;i<5;i++) scanf("%d",&a[i]);

2021-07-06 20:53:22 2329

原创 菜鸡小白学代码1 一维数组的初始化

一维数组的初始化1、初值表中依次放着数组元素的初值,如:int a[10]={1,2,3,4,5,6,7,8,9,10};2、初始化静态数组astatic int a[5]={1,2,3,4,5};静态存储的数组 如果没有初始化,系统自动给所有的数组元素赋0,即static int a[5];等价于static int a[5]={0,0,0,0,0};初始化也可以针对部分元素,如static int a[5]={1,2,3};等价于static int a[5]={1,2,3

2021-07-06 20:26:16 1679 1

空空如也

空空如也

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

TA关注的人

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