两个链表的交集 #include<stdio.h> #include<stdlib.h> typedef struct Node{ int data; struct Node *next; }Node; void initpointer(struct Node *p){ p=NULL; } int printlist(struct Node* head){ int flag=1; head=head->next; /* 因为标记1的地方你用了头结点,所以第一个数据域无效,应该从下一个头元结点开始 */ if(head==NULL) printf("NULL\n"); else { while(head!=NULL) { if(flag==1) { printf("%d",head->data); flag=0; } else { printf(" %d",head->data); } head=head->next; } printf("\n"); } return 0; } struct Node *creatlist(struct Node *head) { int n; struct Node *p1=(struct Node *)malloc(sizeof(struct Node)); p1->next=NULL; while(scanf("%d",&n),n!=-1) { struct Node *pnode=(struct Node *)malloc(sizeof(struct Node)); pnode->next=NULL; pnode->data=n; if(head==NULL) head=pnode; p1->next=pnode; p1=pnode; } return head; } struct Node *Intersect(struct Node *head1, struct Node *head2) { struct Node *p1=head1,*p2=head2;/*我这里没有用头指针和头结点,这里是首元结点head1里面就是第一个数据,一定要理解什么事头指针, 头结点,和首元结点 具体你一定要看这个博客:http://blog.sina.com.cn/s/blog_71e7e6fb0101lipz.html*/ struct Node *head,*p,*q; head = (struct Node *)malloc(sizeof(struct Node)); head->next = NULL; p = head; while( (p1!=NULL)&&(p2!=NULL) ) { if (p1->data == p2->data) { q = (struct Node *)malloc(sizeof(struct Node)); q->data = p1->data; q->next = NULL; p->next = q;//我可以认为你这里用了头结点,也就是说第一个数据域无效 **标记1** p = q; p1 = p1->next; p2 = p2->next; } else if (p1->data < p2->data) { p1 = p1->next; } else { p2 = p2->next; } } return head; } int main() { struct Node *head=NULL,*headt=NULL,*t; //initpointer(head);//这里的函数相当于head=NULL; // initpointer(headt);//上面已经写了headt=NULL那么这里可以不用调用这个函数 head=creatlist(head); headt=creatlist(headt); t=Intersect(head,headt); printlist(t); }
标签: c语言编程
上传时间: 2015-04-27
上传用户:coco2017co
实验的目的是构建一个简单的Web客户机和一个简单的Web服务器的服务器来响应HTTP GET和PUT命令;实验1:构建一个简单的HTTP / 1.0客户机命令行接口;实验2:构建一个简单的HTTP / 1.0服务器;实验3:修改您的简单的Web服务器接受多个并发连接。
上传时间: 2015-11-21
上传用户:gbstar
LPC1700系列ARM是基于第二代ARM Cortex-M3内核的微控制器,是为嵌入式系统应用而设计的高性能、低功耗的32位微处理器,适用于仪器仪表、工业通讯、电机控制、灯光控制、报警系统等领域。其操作频率高达120MHz,采用3级流水线和哈佛结构,带独立的本地指令和数据总线以及用于外设的低性能的第三条总线,使得代码执行速度高达1.25MIPS/MHz,并包含1个支持随机跳转的内部预取指单元。 LPC1700系列ARM增加了一个专用的Flash存储器加速模块,使得在Flash中运行代码能够达到较理想的性能。
标签: lpc1752
上传时间: 2016-03-04
上传用户:hahaha456
商人过河 4商人各带1仆人过河,只有1船,最多能同时载2人。要求,两岸的商人人数都不少于仆人。求,他们如何过河?
标签: 商
上传时间: 2017-03-20
上传用户:睦梨雪菜
简单的实现JPEG图像压缩编码方法一 clear all; RGB=imread('C:\Users\Administrator\Desktop\123.bmp');%读取内存中bmp格式的彩色图像 I=rgb2gray(RGB);%将彩色图像转换为灰度图像 I1=im2double(I);%将图像变换为双精度格式 T=dctmtx(8);%处理后返回一个8*8阶的DCT矩阵 B1=blkproc(I1,[8 8],'P1*x*P2',T,T');%对图像的每个8*8子块应用矩阵式‘P1*x*P2(像素块的处理函数,x是形式参数)进行处理,P1=T,P2=T’ mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];%选取10个DCT系数重构图像(DCT具有能量集中的性质,数据集中在左上角,故进行图像压缩时离散余弦变换矩阵可以舍弃右下角的高频数据) B2=blkproc(B1,[8 8],'P1.*x',mask);%舍弃每个块中的高频系数,达到压缩的目的 I2=blkproc(B2,[8 8],'P1*x*P2',T',T);%余弦反变换,重构图像 subplot(2,2,1);imshow(RGB);%原彩色图像 subplot(2,2,2);imshow(I);%灰度图像 subplot(2,2,3);imshow(I1);%双精度灰度图像 subplot(2,2,4);imshow(I2);%重构图像
标签: matlab
上传时间: 2018-03-15
上传用户:wlmelody
利用simulink搭建异步电机模型; 掌握异步电机各参数对各输出的影响。 1.搭建异步电机模型,电机参数:定子电阻Rs=1欧姆,转子电阻Rr=1欧姆,定子漏感系数=1mH,转子漏感系数=1mH,互感系数=20mH,转动惯量Jm=0.25kgm^2,极对数Np=4。 2.用幅值为380V,频率为50Hz,相位互差120度的三相励磁交流电压供电。先空载启动观察各输出变化,然后在空载稳定后突加200Nm负载观察各输出变化。 3.分别改变Rs,Rr,Jm值,观察输出数据变化。
上传时间: 2018-04-02
上传用户:Jcong233
用matlab实现bpsk调制 用randi函数产生10000个0、1随机数,对原信号signal进行判断, 若为0,则生成调制信息1,若为1,则生成调制信息-1,从而实现BPSK调制。
上传时间: 2018-04-25
上传用户:yyqqyy
利用randi函数产生10000个0、1随机数,对原信号signal进行分类每两个相邻随机数作为新信息SIGNAL并进行判断,若为0,则生成调制信息1+i,若为1,则生成调制信息-1+i,若为2,则生成调制信息-1-i,若为3,则生成调制信息1-i,从而实现QPSK调制
上传时间: 2018-04-25
上传用户:yyqqyy
使用手册《电气技术用文件的编制(第5部分):索引(GB/T 6988.5-2006)(IEC 61082-6:1997)》由全国电气信息结构、文件编制和图形符号标准化技术委员会提出并归口。本部分起草单位:机械科学研究院中机生产力促进中心、航空总公司301所、国电华北电力设计院工程有限公司、中冶京诚工程技术有限公司、凌海科诚电力电器制造有限责任公司、辽宁立德电力电子有限公司。本部分主要起草人:郭汀、高永梅、沈兵、高惠民、曾幼云、王健斌、张玉良、王春海。
标签: EPLAN
上传时间: 2018-06-27
上传用户:454545
function [alpha,N,U]=youxianchafen2(r1,r2,up,under,num,deta) %[alpha,N,U]=youxianchafen2(a,r1,r2,up,under,num,deta) %该函数用有限差分法求解有两种介质的正方形区域的二维拉普拉斯方程的数值解 %函数返回迭代因子、迭代次数以及迭代完成后所求区域内网格节点处的值 %a为正方形求解区域的边长 %r1,r2分别表示两种介质的电导率 %up,under分别为上下边界值 %num表示将区域每边的网格剖分个数 %deta为迭代过程中所允许的相对误差限 n=num+1; %每边节点数 U(n,n)=0; %节点处数值矩阵 N=0; %迭代次数初值 alpha=2/(1+sin(pi/num));%超松弛迭代因子 k=r1/r2; %两介质电导率之比 U(1,1:n)=up; %求解区域上边界第一类边界条件 U(n,1:n)=under; %求解区域下边界第一类边界条件 U(2:num,1)=0;U(2:num,n)=0; for i=2:num U(i,2:num)=up-(up-under)/num*(i-1);%采用线性赋值对上下边界之间的节点赋迭代初值 end G=1; while G>0 %迭代条件:不满足相对误差限要求的节点数目G不为零 Un=U; %完成第n次迭代后所有节点处的值 G=0; %每完成一次迭代将不满足相对误差限要求的节点数目归零 for j=1:n for i=2:num U1=U(i,j); %第n次迭代时网格节点处的值 if j==1 %第n+1次迭代左边界第二类边界条件 U(i,j)=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j)); end if (j>1)&&(j U2=1/4*(U(i,j+1)+ U(i-1,j)+ U(i,j-1)+ U(i+1,j)); U(i,j)=U1+alpha*(U2-U1); %引入超松弛迭代因子后的网格节点处的值 end if i==n+1-j %第n+1次迭代两介质分界面(与网格对角线重合)第二类边界条件 U(i,j)=1/4*(2/(1+k)*(U(i,j+1)+U(i+1,j))+2*k/(1+k)*(U(i-1,j)+U(i,j-1))); end if j==n %第n+1次迭代右边界第二类边界条件 U(i,n)=1/4*(2*U(i,j-1)+U(i-1,j)+U(i+1,j)); end end end N=N+1 %显示迭代次数 Un1=U; %完成第n+1次迭代后所有节点处的值 err=abs((Un1-Un)./Un1);%第n+1次迭代与第n次迭代所有节点值的相对误差 err(1,1:n)=0; %上边界节点相对误差置零 err(n,1:n)=0; %下边界节点相对误差置零 G=sum(sum(err>deta))%显示每次迭代后不满足相对误差限要求的节点数目G end
标签: 有限差分
上传时间: 2018-07-13
上传用户:Kemin