努力学习打卡Day02
今天跟学习了数据结构中的链表(太难了弄了一天才弄出来基本的东西明天接着弄链表希望能够掌握明白链表):
#include<iostream>
using namespace std;
//创建节点
struct Node {int data;//数据域Node* next;//指针域
};//创建链表
class LinkList
{
public:LinkList();~LinkList();void Insert(int pos, int val);int Search(int val);int Del(int pos);int Get(int pos);int Getlength();void Print();
private:Node* head;int length;
};LinkList::LinkList()
{head = new Node;//头节点head->next = NULL;length = 0;
}LinkList::~LinkList() {Node* q = NULL;for (Node* p = head; p != NULL; p = q){q = p->next;delete p;}
}void LinkList::Insert(int pos, int val)
{if (pos < 1)throw"位置不正确";int count = 0;Node* s = new Node;s->data = val;for (Node*p = head; p != NULL; p = p->next){if (count + 1 == pos){//先顾尾s->next = p->next;//再顾头p->next = s;}count++;}length++;
}
//按值查询
int LinkList::Search(int val)
{int pos;int count = 0;bool isFind = false;for (Node* p = head; p != NULL; p->next) {if (p->data == val){isFind = true;pos = count;break;}count++;if (isFind == false)throw"none";}return pos;
}
//按位查找
int LinkList::Get(int pos)
{int count = 0;//这里定义一个count是为了与链表的指针域相对应因为指针域并不是连贯的for (Node* p = head; p != NULL; p = p->next){if (count == pos){return p->data;break;}count++;}
}int LinkList::Del(int pos) {if (length == 0)throw"下溢";if (pos<1 || pos>length)throw"位置不正确";int count = 0;Node* q = NULL;//用于暂时存放要删除的结点int val = 0;//用于返回所删除结点的数值for (Node* p = head; p != NULL; p = p->next){if (count+1 == pos){q = p->next;val = q->data;p->next = q->next;//摘链delete q;break;}count++;}length--;return val;
}
//获得链表长度
int LinkList::Getlength()
{return length;
}
//打印链表
void LinkList::Print()
{for (Node* p = head->next; p != NULL; p = p->next)//Node* p = head->next是因为第一个结点是头结点头结点的值为0;cout << p->data << endl;
}int main()
{LinkList list;int n, pos, val;char command;while (cin >> command){if (command == 'E')break;try {switch (command){case'I':cin >> n;for (int i = 0; i < n; i++){cin >> pos >> val;list.Insert(pos, val);}break;case 'S':cin >> val;cout << list.Search(val);break;case 'D':cin >> pos;cout << list.Del(pos);break;case 'G':cin >> pos;cout << list.Get(pos);break;case 'L':cout << list.Getlength();break;case 'V':list.Print();break;}}catch (const char* str){cout << str;}}return 0;}
整了一上午加下午就写了这么点东西实在没心情弄链表了。
晚上学了java:
——随机数(猜测数字小游戏)
package random;import org.w3c.dom.ls.LSInput;import java.util.Random;
import java.util.Scanner;//猜数字游戏
public class randomdemo2 {public static void main(String[] args) {Random r = new Random();int luckynumber = r.nextInt(100)+1;Scanner s = new Scanner(System.in);while(true){System.out.println("请输入您猜测的数据(1——100):");int guessnumber = s.nextInt();if(guessnumber>luckynumber){System.out.println("您猜测的数据过大");}else if(guessnumber<luckynumber){System.out.println("您猜测的数据过小");}else{System.out.println("猜测正确");break;}}}
}
——数组(元素求和)
package array;import java.util.Scanner;//数组元素求和
public class arraydemo3 {public static void main(String[] args) {int[] score = new int[3];int sum = 0;Scanner sc = new Scanner(System.in);for(int i = 0; i < score.length; i++){score[i] = sc.nextInt();}for(int j = 0; j < score.length; j++){sum = score[j] + sum;}System.out.println(sum);}
}
——随机排序
package array;import java.util.Random;
import java.util.Scanner;//随机排名
//要求对五名员工的工号进行随机排名
public class arraydemo6 {public static void main(String[] args) {int[] number = new int[5];Scanner sc = new Scanner(System.in);for(int i = 0; i < number.length; i++){//依次录入员工工号System.out.println("请依次输入第"+(i+1)+"名员工的工号");number[i] = sc.nextInt();}//遍历元素中的每个元素然后随机排序元素Random r = new Random();for(int j = 0; j < number.length; j++){int index = r.nextInt(number.length);//定义一个临时变量存储index位置处的值int itemp = number[index];number[index] = number[j];number[j] = itemp;}for(int k = 0; k < number.length; k++){System.out.print(number[k]+"\t");}}
}
——冒泡排序(终于整明白了两个循环的含义)
package array;
//数组排序(冒泡排序)
public class arraydemo7 {public static void main(String[] args) {int[] arr= new int[]{4,2,5,1};//比较轮数= 长度-1for(int i = 1; i <= arr.length; i++){//i = 1 比较次数3 j = 0 1 2//i = 2 比较次数2 j = 0 1//i = 3 比较次数1 j = 0//每轮比较次数= 长度-i//定义一个循环控制每轮比较的次数,占位for(int j = 0; j < arr.length - i; j++){if (arr[j] > arr[j+1]){int temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;}}}for(int k = 0; k < arr.length; k++){System.out.println(arr[k]);}}
}
——java内存分配
package memory;
//内存分配
public class arraydemo1 {public static void main(String[] args) {int[] arr1 = {1,2,3};int[] arr2 = arr1;//将arr1的地址赋值给arr2System.out.println(arr1);System.out.println(arr2);}
/*
/java中内存的分配:栈 堆 方法区。
方法区:字节码文件:class文件。
栈:方法函数,变量。
堆:new出来的对象。*/
还有其他一些杂七杂八的小java知识就不写了今天被链表卡住一天其他科目都没得学明天起早点接着干吧就这样了
努力学习打卡Day02相关推荐
- 努力学习打卡Day03
今天学习了双链表: #include<iostream> using namespace std; struct Node {int data;Node* pre;Node* next; ...
- 努力学习打卡Day16
继承: 特点: package d7_extends_feature;public class Test {//理解继承的特点//1:子类不能继承父类的构造器//2:子类可以继承父类的私有成员,但是不 ...
- 坚持学习打卡的人,将来会变成什么样?
坚持打卡的人,将来会变成怎么样?让我们拭目以待.我组织了一个打卡活动,希望大家踊跃参加. 有一个励志故事: 在中国的最东边生长着一种竹子,名叫"毛竹".那里的农民到处播种,每天精心 ...
- 寒假学习打卡第一篇文章-----numpy的学习
寒假学习打卡-----numpy的学习(技术咨询vx:keyichen_free day01 1.数组的创建 # 再进行所有的操作之前,要先导入numpy import numpy as np # 创 ...
- win32 输出文字时清除之前的_努力学习没效果?3个步骤,强化沟通输出,实现飞跃式成长...
努力学习工作没效果?其实是缺乏沟通输出的表现 我们经常会听到这样的抱怨:自己读了很多书,但是却没有什么改变,自己也报了很多网课,明明学了很多知识和技能,却没有什么进步. 为什么会出现这种情况呢? 日本 ...
- numpy 转存为matlab_Numpy学习打卡task01
今天带来的是Datawhale自主学习Numpy下学习打卡笔记第一部分-输入输出(为什么没有上,别问,问就是numpy.tan(90)).本文大致介绍了numpy的相关背景知识.本文素材来自网络及da ...
- 普中科技开发板使用说明书_百度大脑加持,米尔科技FZ3深度学习计算卡评测
如果你要问我现在电子产业什么最热,那无疑是AI,而基于大数据训练的深度学习技术可以说是目前AI应用的最广,最成功的产品形态了,覆盖我们生活的方方面面,诸如购物.看病.新闻编辑等,在这高深技术的背后少不 ...
- 程序员抱怨:父母没文化没见识,当初努力学习远离看来是正确的
不知道从什么时候开始,老家与父母就成了这一代职场人的一种「精神酷刑」,两代人的代沟冲突总会发展成鸡同鸭讲.长辈间的话题,我们不感兴趣.我们所专注的东西对他们来说又过于陌生和遥不可及,最终只剩下沉默,甚 ...
- zynq无法识别sd卡_百度米尔携手推出FZ3深度学习计算卡!
前言:百度大脑是百度 AI 核心技术引擎,包括视觉.语音.自然语言处理.知识图谱.深度学习等AI核心技术和AI开放平台. 基于 Xilinx Zynq UltraScale+ MPSoC 的 Edge ...
最新文章
- linux7怎样搭建zabbix,Centos7.0 搭建Zabbix环境
- 【Java并发编程】一、为什么需要学习并发编程?
- php 数学函数bc的使用(浮点数计算)
- 用于弹出ModalDialog进行数据选择的控件
- uvalive4838(凸包+重心)
- 计算平均指令时间_为什么向量化计算(vectorization)会这么快?
- 自然语言处理与中文分词的难点总结--学习笔记
- springboot定时删除log4j_SpringBoot整合log4j2进行日志配置及防坑指南
- 当物联网和区块链同台,太惊艳!
- javaaop模式供其他项目调用_结构性模型-静态代理模式
- com组件--GUID
- 微信红包封面,你真的领取到了吗?
- break 和continue 区别以及用法。
- 看了下华为工资,我不加班了
- 天黑请闭眼服务器维护中,天黑请闭眼
- macbookpro安装ch340驱动
- 加载网络图片Glide+圆角 fragment的动态添加 底部图标点击选中
- mybatis 连带操作(注解方式)(两张表关联,一张表插入一条新数据,另外一张表也跟着插入一条新数据)
- 学习太极创客 — ESP8226 (十一)用 WiFiManager 库配网
- 3D视图中获取鼠标所在位置