编程语言
首页 > 编程语言> > 理工小刘的程序设计学习笔记

理工小刘的程序设计学习笔记

作者:互联网

文章目录


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、日期:2021/7/18

今日主要讨论了
1.存在多种情况下的选择问题
2.以建立链表为例,对于指针的失效的条件的探究

二、问题简要及其笔记

1.存在多种情况下的选择问题

代码如下(示例):

//定义学生的结构体
struct  stu{
	int number;
	int score;
};

bool cmp (stu a, stu b){
	//如果学生的分数不同则按照分数从大到小排列 
	if(a.score !=b.score){
		return a.score>b.score;
	}
	//如果学生的分数相同则按照数字的排序从小到大排序
	else{
		return a.number<b.number;
	}
}
bool cmp (stu a,stu b){
//使用三目运算符可以有效地减少代码的规模
	return a.score!=b.score ? a.score>b.score : a.number<b.number;
}

2.以建立链表为例,对于指针的失效的条件的探究

代码如下(示例):

ListNode* buildlist (){
  	ListNode*head = NULL;
	ListNode* next1 = NULL;
	ListNode* ll1 =NULL;
	for(int i = 0;i<3;i++){
		ll1 = (ListNode*)malloc(sizeof(ListNode));
		if(head==NULL){
			head = ll1;
		}else{
//正确版本			
<-------------------------------------------------------------------------------------->
			next1->next = ll1;
<-------------------------------------------------------------------------------------->	
		}	
		ll1->next = NULL;
		cin>>ll1->val;
//正确版本 
<-------------------------------------------------------------------------------------->
		next1 = ll1;
<-------------------------------------------------------------------------------------->		
	}
	return head; 
} 

 ListNode* buildlist (){
  	ListNode*head = NULL;
	ListNode* next1 = NULL;
	ListNode* ll1 =NULL;
	for(int i = 0;i<3;i++){
		ll1 = (ListNode*)malloc(sizeof(ListNode));
		if(head==NULL){
			head = ll1;
		}else{
//错误版本			
<-------------------------------------------------------------------------------------->
			next1  = ll1;
<-------------------------------------------------------------------------------------->	
		}	
		ll1->next = NULL;
		cin>>ll1->val;
//错误版本 
<-------------------------------------------------------------------------------------->
		next1 = ll1->next;
<-------------------------------------------------------------------------------------->		
	}
	return head; 
} 

总结

以上就是今天要讲的内容,本文仅仅简单介绍了指针失效的一种常见情况,譬如,在每一次循环进行相关的操作(例如:给节点内部的变量赋值的行为)后,如果需要将此节点与上一个完成相关行为(例如:给节点内部的变量赋值的行为)产生逻辑关系的情况(称之为节点连接问题),不能在每次行为结束(循环结束)的末尾记录本次节点的next的结果,而是应该记录本次节点的结果。

标签:head,ListNode,ll1,笔记,score,理工,程序设计,NULL,next1
来源: https://blog.csdn.net/Dxlr_/article/details/118879863