【练习】P62

高速高精密ADC数据采集-ADS62P49的FPGA同步校准与数据提取实战 本文详细解析了TI高性能ADC芯片ADS62P49在高速高精密数据采集中的应用,包括核心特性、硬件设计要点、SPI配置技巧、时钟同步校准及数据提取的Verilog实现。通过实战案例和优化技巧,帮助工程师解决FPGA同步校准与数据提取中的技术难点,提升系统性能。 阅读详情

/*---分别对单链表和双链表,只使用指针来交换两个相邻的元素。---*/


/*-单链表版本-*/
#include <stdio.h>
#include <stdlib.h>

struct Node{
	int val;
	struct Node *next;	
};

Node *findEnd(Node *list){	
	while(list->next) list = list->next;
	return list;
}

void insert(int val, Node *list){
	Node *p = (Node *)malloc(sizeof(Node));
	p->val = val; p->next = NULL;
	Node *end = findEnd(list);
	end->next = p;
}
Node *creatNewList(){
	return (Node *)malloc(sizeof(Node));
}

void deleteList(Node *list){
	Node *p;
	while(list){
		p = list->next;
		free(list);
		list = p;
	}
}

void print(Node *list, int k){
	int i = 0;
	while(i < k){
		list = list->next;
		++i;
		if(list == NULL){
			printf("Out of list length!");
			return;
		}
	}
	printf("%d ", list->val);
}

Node *find(int k, Node *list){
	int i = 0;
	while(i < k){
		list = list->next;
		++i;
		if(list == NULL){
			printf("Out of list length!");
			return NULL;
		}
	}
	return list;
}

void swap(int a, int b, Node *list){
	Node *k = find(a - 1, list);
	Node *p1 = k->next;
	Node *p2 = p1->next;
	k->next = p2;	
	p1->next = p2->next;
	p2->next = p1;
}

int main(){
	Node *L = creatNewList(), *ptr;
	Node *P = creatNewList();
	L->next = NULL;	
	int a;
	while(scanf("%d", &a) == 1)
		insert(a, L);
	
	swap(3, 4, L);
	ptr = L->next;
	while(ptr){
		printf("%d ", ptr->val);
		ptr = ptr->next;
	}
	printf("\n");
	deleteList(L);
	return 0;
}


/*-双链表版本-*/
#include <stdio.h>
#include <stdlib.h>

/*表结点类型*/
struct Node{
	int val;
	Node *pre, *next;
};

/*创建一个表头即空双链表*/
Node *creatList(){
	return (Node *)malloc(sizeof(Node));
}

/*在链表尾端插入元素*/
void insert(int val, Node *list){
	Node *p = list;
	while(p->next) p = p->next;
	p->next = (Node *)malloc(sizeof(Node));
	p->next->val = val;
	p->next->next = NULL;
	p->next->pre = p;
}

/*找到第i个元素的位置*/
Node *find(int i, Node *list){
	while(i--){
		list = list->next;
		if(list == NULL){
			printf("Out of list length!\n");
			return NULL;
		}
	}
	return list;
}
/*交换两个相邻元素,先改中间的指针*/
void swap(int i, int j, Node *list){
	Node *p1 = find(i, list);
	Node *p2 = p1->next;
	p2->pre = p1->pre;
	p1->next = p2->next;
	p1->pre = p2;
	p2->next = p1;
	p2->pre->next = p2;
	p1->next->pre = p1;
}

/*销毁链表*/
void deleteList(Node *list){
	Node *p;
	while(list){
		p = list;
		list = list->next;
		free(p);
	}
}

int main(){
	Node *list = creatList();
	list->next = NULL; list->pre = NULL;
	int a;
	while(scanf("%d", &a) == 1)
		insert(a, list);
	swap(3, 4, list);
	Node *ptr = list->next;
	while(ptr){
		printf("%d ", ptr->val);
		ptr = ptr->next;
	}
	deleteList(list);
	return 0;
}



golang实现base62编码 package main import ( "fmt" "math" ) var base = []string {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G", 阅读详情

相关推荐

lammps模拟石墨烯吸附水分子(gcmc)

本文分享lammps gcmc吸附的一个案例代码,上下壁面的通道材料为石墨烯,吸附的分子为tip4p水分子。大家好,我是小马老师。

lammps_jiayou的博客 2567

练习】P62页3.2题

/*---给你一个链表L和另一个链表P,它们包含以升序排列的整数。操作PrintLots(L,P) 将打印L中那些由P所指定位置上的元素。---*/ #include #include struct Node{ int val; struct Node *next; }; Node *findEnd(Node *list){ while(list->next) list = l

长风的专栏 2267

【华为OD机试真题 Python语言】371、增强的strstr | 机试真题+思路参考+代码解析(E卷复用)

>C语言有一个库函数: char *strstr(const char *haystack,const char *needle) ,实现在字符串haystack中查找第一 次出现字符串needle的位置,如果未找到则返回null >  现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊查询,与strstr一样返回首次查找到的字符串位置 >  可选段使用"[]"标识,表示该位置是可选段中任意一个字符即可满足匹配条件,比如"a[bc]"表示可以匹配"ab"或"ac" >&

KJ.JK 2559

实战练习P62 ---比较大小,求矩形面积

练习 2、:编写Java程序,声明两个int型变量,运用三元运算符判断两个变量是否相等,若不相等,求出两个数中较大的。 package com.hanqi;public class Exercise { public static void main(String[] args) { //写法1 int a=90; int b=10; System.out.println("a="+...

weixin_34363171的博客 330

p62 练习3.3 通过只调整指针(而不是数据)来交换两个相邻的元素,使用:

由于两种数据结构的结点结构体都较为简单,这里就不列出了 a.单链表 List creatList1(List T,int n) //创建单链表 (头插法) { int x;Position S; T = new struct Node; T->Next = NULL; for(int i = 0;i < n;i++) { S = new s...

HJM916577的博客 347

高速高精密ADC数据采集-ADS62P49

目录 0、ADS62P49特性 1、实现框架 2、配置模块 3、同步校准 4、数据提取 5、测试 参考资料: 0、ADS62P49特性 TI公司的模/数转换芯片ADS62P49。如表所示,该芯片可以实现双通道14位高速高精度数据采集,最大采样速率可达250MSPS。它结合了高动态性能和低功耗在一个紧凑的64-QFN封装中,这使得它非常适合多载波、宽带通信应用。 表 ADS62P49主要参数 主要参数 典型值 最大采样率 .

独木舟216的博客 8516

FMC150配置和使用(三)ads62p49

对于芯片的配置在前两个篇章已经详细介绍过了,无非就是仔细看芯片的数据手册,然后不断试错。这一章就重点讲一讲配置ads62p49需要我们注意的地方。 SPI时序图 这里需要注意的是,对于ads62p49,输入数据是在SCLK的下降沿锁存,上升沿改变,和前两个芯片不太一样。另外,如果芯片寄存器是软复位的话,RESET得一直置零,而不是输出脉冲。 输出数据格式 如果是LVDS输出的话,对应如下时序图。...

gratdan的博客 2083

BLOSUM62的知识

BLOSUM 是“blocks substitution matrix”的缩写。BLOSUM打分矩阵最早由 Steven Henikoff. 和 J.G Henikoff在他们的论文中被提出。其中,他们从BLOCKS数据库中对那些在高度保守序列中的蛋白质家族进行观察测量进而整理出了氨基酸替换的概率。他们继续使用对数胜算来计算矩阵中的分值。与PAM打分矩阵相比,BLOSUM打分矩阵的内容皆由观察得出。在实际运用中,BLOSUM矩阵通常能获得更好的结果。

JEREMY的博客 8171

java P35-P62内容梳理

java P35-P62内容梳理

m0_59605707的博客 91

base62编码 java_Golang 之 Base62 编码

Base62 编码用62个可见字符来编码信息,也就是所谓的62进制,可用于缩短地址之类的。实现起来也很简单。当然,这个实现跟别人家的有可能不一样,反正自己能编能解就行。package mainimport ("math""strings")const CODE62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"...

weixin_31613423的博客 3905

《Operating System Concepts》阅读笔记:p62-p75

(1) 定义(2) 类型示例:We may also read(), write(), or reposition() (rewind or skip to the end of the file, for example)(《Operating System Concepts》第 71 页)

codists的博客 1093

Base62编码与62进制

Base62编码 Base62编码与Base64编码类似,都用于数据内容编码。基本原理请参看《Base64算法》。 import java.io.ByteArrayOutputStream; /** * Created by shijiaqi on 16/8/3. */ public class Base62Codec { private static...

weixin_30768661的博客 1162

⾃噬标记物NBR1和p62 ELISA试剂盒

NBR1和p62作为⻣架蛋⽩,有助于蛋⽩质的转运和降解。NBR1和p62试剂盒⽤于定量⼈、⼤⿏、⼩⿏细胞⾃噬标记物NBR1和p62。操作⽅便,⽆需要其他昂贵的设备。

Neobioscience的博客 143

Grayhill 编码器 62F02-02-P-L

62A08-02-P62A18-01-P61K256-020。

Chen_YYan的博客 198

Base62

<?php /** * Base62 将整型转为62进制数字(有大数问题) * @author Sundj * @since 2014.04.07 */ class Base62 { const BASE = 62; static $baseChars = '0123456789abcdefghijklmnopqr...

ZHR0743的博客 239

K67 特异性抑制 Keap1 与 S349-磷酸化 p62 之间的相互作用 |MedChemExpress (MCE)

K67 特异性抑制 Keap1 与 S349-磷酸化 p62 之间的相互作用。 K67 阻止 p-p62 阻断 Keap1 和 Nrf2 的结合。

mmmm12134的博客 510

太赫兹不可信无人机中继的最低保密能量效率最大化附Matlab代码.rar

太赫兹不可信无人机中继的最低保密能量效率最大化附Matlab代码.rar

【人工智能应用开发】基于Dify平台的大模型应用快速部署指南:从环境准备到服务启动全流程解析

内容概要:本文详细介绍了Dify的特性及其部署步骤。Dify是一款开源的大语言模型(LLM)应用开发平台,融合了后端即服务(Backend as a Service)和LLMOps的理念,旨在降低大模型应用开发的门槛。它支持多种主流大语言模型,提供直观的可视化界面,具备强大的检索增强生成(RAG)引擎,并允许用户定义AI Agent和添加工具。部署Dify前需确认系统要求(如操作系统、内存、存储、网络),安装Docker和Docker Compose,确保Python版本符合要求。部署过程包括克隆Dify仓库、配置环境变量、启动Dify服务,并完成初始化设置。文中还总结了常见的部署问题及解决办法。适合人群:具备一定编程基础的研发人员、希望快速搭建生产级生成式AI应用的开发者,尤其是那些希望通过低代码方式开发AI应用的非技术背景人员。使用场景及目标:①快速搭建生产级的生成式AI应用,如智能客服、文档问答系统、创意写作助手等;②通过拖拽和配置的方式,无需编写大量代码,灵活选择和集成不同的大语言模型;③利用RAG引擎提高AI应用的回答准确性,减少模型“幻觉”。其他说明:本文不仅详细描述了Dify的功能和部署步骤,还提供了针对常见问题的解决方案,帮助用户顺利完成部署。此外,文章强调了Dify的灵活性和易用性,使得即使是非技术背景的人员也能参与AI应用的开发。建议读者在部署过程中仔细阅读每一步骤,并根据实际情况进行调整和优化。

上一篇: 【练习】P62页3.2题
下一篇: NYOJ21 三个水杯 【BFS】
长风Qiu
博客等级 码龄13年 164粉丝 709原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值