青少年编程知识记录 codecoming

信息学奥赛知识点(十五)----链表

4.1 基本概念(1)用来存储数据变量叫做数据域。(2)用来存“直接后继(前趋)元素的地址”的指针叫做指针域。(3)数据域和指针域构成的元素叫做结点。(4)”->” 箭头运算是结构体指针访问其指向的成员变量的操作符.4.2单链表(1)单链表的定义:1.  struct Node {2.   int data;3.   Node * next;4.  };5.  Node * p;(2)单链表的查找//(按序号查找)在单链
作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十四)----指针

3.1 定义

指针就是地址。

指针变量定义形式:  类型说明符  *变量名     例如:int  *a;

含义:定义了一个int *类型变量,名称为a。(只能存储int *类型)

注意:int *类型和int 类型不一样。



3.2 指针的赋值

实际操作中,&”符号表示“取地址符”。(区别与&&和按位与&,使用场景不同)。比如下面的代码:

1.  #include<iostream>

2.  #include<cstdio>

3.  using namespace std;

4.  int main() {

5.   int a=3;

6.   int *p=NULL;

7.   p=&a;

8.   cout<<"a的值"<<a<<endl;  //3

9.   cout<<"p的值"<<p<<endl;  //0x22fe34

10.  cout<<"*p的值"<<*p<<endl; //3

11.  return 0;

12. }

其中,第7行的“&”表示取变量a的地址,赋值给p变量,而p是指针类型,可以保存地址。

scanf读取数据的时候,也会写作scanf(“%d”,&a); 这里面的&”也是取地址符号。

10行的结果是3,也就是a的值,这里可以这样理解:因为pint *类型,*p等价于*(int *),这里可以“负负得正”的思想来记录结果,也就是指向了int *这个指针所指向的变量。

3.3 指针与数组

  指向数组的指针变量称为数组指针变量。数组是内存上一块连续的空间。数组名就是这块连续空间的首地址。

1.  #include<iostream>

2.  #include<cstdio>

3.  using namespace std;

4.  int main() {

5.   int a[10];

6.   for(int i=0; i<5; i++) {

7.    scanf("%d",a+i); 

8.   }

9.   for(int i=0; i<5; i++) {

10.   printf("%d ", *(a+i)); 

11.  }

12.  return 0;

13. }



作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十三)----树和二叉树(下)

一、表达式的求法考试中有经常出现类似于“中缀表达式转后缀”,“前缀表达式转后缀”等。如果能画出唯一的二叉树那么便根据二叉树的结构之间求解即可,有些情况很难直接画出二叉树。还有通过加括号的方式进行求解,还有利用栈的方法求表达式。(1) 【中缀转后缀:利用栈】规则:①从左往右遇到操作数直接输出 ②遇到操作符,放入栈中③遇到左括号,入栈      ④遇到右括号,出栈(直到遇到左括号,左括号只弹出不输出) ⑤遇到其
作者:亿万年的星光 分类:初赛 浏览:

C++利用cout简单输出

如何空格输出#include<iostream> using namespace std; int main() { cout<<"hello world"; return 0; }前面演示的hello world的输出中间部分就带有一个空格(hello world中间有多少空格就输出多少空格)2. 如何换行输出#include<iostream> using&n
作者:亿万年的星光 分类:课程 浏览:

C++的一些符号和快捷键

一、常见符号名称符号位置备注加号+"shift"+"="减号-"shift"+"-"乘号*"shift"+"8"除号/"/"   (?键)取余%"shift"+"5"4%3=1      3%4=3赋值=“=”按键判等==“=”按键小括号( )"shift&q
作者:亿万年的星光 分类:课程 浏览:

认识C++程序的结构

上一节中,我们编写了第一个C++程序:编写第一个C++程序 - 青少年编程知识记录 (codecoming.com)这篇文章,简单介绍一下C++程序的结构:#include<iostream> using namespace std; int main(){ cout<<"Hello World!"; return 0; }关于上面的代码,每一部分给出如下的解释:头文件,在主程序加载之前先
作者:亿万年的星光 分类:课程 浏览:

【题解】二分法查找左边界

参考代码:# include <bits/stdc++.h> using namespace std; int a[100005];  int n,m,x; //数组大小,要查找的数大小,每次要查找的数  int main() { // freopen("1.in","r",stdin); // freopen("1.ou
作者:亿万年的星光 分类:题解目录 浏览: