链表2

来源:互联网 发布:域普软件怎样 编辑:程序博客网 时间:2024/05/12 07:51

#include<stdio.h>

#include<stdlib.h>

 

//3+3x+3y+10+10x+10y=13+13x+13y//用循环链表实现

typedef struct suanshu{

int num;

float numx;

char   x;

float numy;

char  y;

struct suanshu *next;

}SU;

void print(SU *head);

SU *insert(SU *head,int num,float numx,char x,float numy,char y);

int main(){

SU *head=NULL;

head = insert(head,3,5,'x',6,'y');

head = insert(head,7,10,'x',10,'y');

head = insert(head,100,100,'x',100,'y');

print(head);

return 0;

}

SU *insert(SU *head,int num,float numx,char x,float numy,char y)

{

SU *ptr=NULL;

SU *tmp=head;

ptr = (SU *)malloc(sizeof(SU));

ptr->num=num;

ptr->numx=numx;

ptr->x=x;

ptr->numy=numy;

ptr->y=y;

if(NULL == head)

{

head=ptr;

}else{

while(tmp->next != head){//当最后一个元素的指针域指向头元素的时候,退出

tmp = tmp->next;

}

tmp->next=ptr;

}

ptr->next = head;

return head;

}

 

void print(SU *head){

SU *tmp=head;

int sum=0;

float sumx=0;

float sumy=0;

while(tmp->next != head){

 

printf("%d+%f%c+%f%c",tmp->num,tmp->numx,tmp->x,tmp->numy,tmp->y);

sum += tmp->num;

sumx += tmp->numx;

sumy += tmp->numy;

tmp=tmp->next;

if(tmp != head)

printf("+");

}

printf("%d+%f%c+%f%c",tmp->num,tmp->numx,tmp->x,tmp->numy,tmp->y);

printf("\n=");

printf("%d+%f%c+%f%c\n",sum+tmp->num,sumx+tmp->numx,head->x,sumy+tmp->numy,head->y);

}

==============================================================================================================================

#include<stdio.h>

#include<stdlib.h>

 

//3+3x+3y+10+10x+10y=13+13x+13y//用循环链表实现

typedef struct suanshu{

int num;

float numx;

char   x;

float numy;

char  y;

struct suanshu *next;

}SU;

void print(SU *head);

SU *insert(SU *head,int num,float numx,char x,float numy,char y);

int main(){

SU *head=NULL;

head = insert(head,3,5,'x',6,'y');

head = insert(head,7,10,'x',10,'y');

head = insert(head,100,100,'x',100,'y');

print(head);

return 0;

}

SU *insert(SU *head,int num,float numx,char x,float numy,char y)

{

SU *ptr=NULL;

SU *tmp=head;

ptr = (SU *)malloc(sizeof(SU));

ptr->num=num;

ptr->numx=numx;

ptr->x=x;

ptr->numy=numy;

ptr->y=y;

if(NULL == head)

{

head=ptr;

}else{

while(tmp->next != head){//当最后一个元素的指针域指向头元素的时候,退出

tmp = tmp->next;

}

tmp->next=ptr;

}

ptr->next = head;

return head;

}

 

void print(SU *head){

SU *tmp=head;

int sum=0;

float sumx=0;

float sumy=0;

while(tmp->next != head){

 

printf("%d+%f%c+%f%c",tmp->num,tmp->numx,tmp->x,tmp->numy,tmp->y);

sum += tmp->num;

sumx += tmp->numx;

sumy += tmp->numy;

tmp=tmp->next;

if(tmp != head)

printf("+");

}

printf("%d+%f%c+%f%c",tmp->num,tmp->numx,tmp->x,tmp->numy,tmp->y);

printf("\n=");

printf("%d+%f%c+%f%c\n",sum+tmp->num,sumx+tmp->numx,head->x,sumy+tmp->numy,head->y);

}


原创粉丝点击