日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

用c语言链表编写便利店零售系统,链表实现多项式求和(C语言)

發布時間:2025/3/20 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用c语言链表编写便利店零售系统,链表实现多项式求和(C语言) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈表實現多項式求和(C語言)0

aebgt2013.06.26瀏覽270次分享舉報

1 多項式求和中兩個鏈表合并問題,請各位大俠幫忙啊

#include

#include

typedef struct node

{

float coef;

int exp;

struct node *next;

}link,*linklist;

linklist creatployn ()

{

linklist head,temp,now;

temp=now=(linklist)malloc(sizeof(link));

printf("請輸入該項系數和指數:\n");

scanf("%f,%d",&temp->coef,&temp->exp);

temp->next=NULL;

if (temp->coef==0.0||temp->exp<0)

{

head=NULL;

free(now);

}

else head=now;

while (temp->coef!=0.0&&temp->exp>=0)//

{

now->next=temp;

now=temp;

temp=(linklist)malloc(sizeof(link));

printf("請輸入該項系數和指數:\n");

scanf("%f,%d",&temp->coef,&temp->exp);

}

free(temp);

now->next=NULL;

return(head);

}

void printployn(linklist head)

{

linklist p=head;

int n=1;

printf("該表達式為:\n");

if(p==NULL)

return;

while(p!=NULL)

{

if(n==1) {printf("%fX^%d",p->coef,p->exp); n++;}

else printf("+%fX^%d",p->coef,p->exp);

p=p->next;

}

}

int compare(int x,int y) //比較兩個多項式的指數

{

if(x

else if(x=y) return 0;

else return 1;

}

linklist addployn(linklist la,linklist lb) //兩個多項式的合并(此處在la表上與lb表對應元素作比較,做出響應的添加刪除操作,最后返回la)

{

linklist head,temp=(linklist)malloc(sizeof(link)),qa=la,qb=lb,tempa,tempb;

head=temp;

temp->next=NULL;

int a,b;

while(qa&&qb)

{

a=qa->exp; b=qb->exp;

switch (compare(a,b))

{

case -1:

temp->next=qa; temp=qa; qa=qa->next;break;//將la表的結點作為當前結點,并將la指向la表當前結點的下一結點

case 0: //合并指數相同的項

qa->coef+=qb->coef; //系數相加

if(qa->coef!=0) //系數不為零,將la表的結點作為當前結點,并釋放lb表結點,再分別讓qa,qb指向各自的下一結點

{

temp->next=qa;//

temp=qa;

qa=qa->next;

}

else //系數為零將當前la,lb表重的結點釋放,并指向各自的下一點

{

tempa=qa;

qa=qa->next;

free(tempa);

}

tempb=qb; qb=qb->next; free(tempb);

break;

case 1:

temp->next=qb; temp=qb; qb=qb->next; //將lb表結點插入la表作為當前結點,并使qb指向下一結點

break;

}

}

if(qa) temp->next=qa;

else temp->next=qb;

tempa=head;

head=head->next;

free(tempa);

return(head);

}

void main()

{

linklist LA=creatployn();

printployn(LA);

linklist LB=creatployn();

printployn(LB);

linklist LC=addployn(LA,LB);

printployn(LC);

}

基本思路是按指數從小到大輸入系數和指數,到0,0結束該多項式輸入。求和部分,不引入新表,而在原來的a表上將b表元素進行插入和刪除的操作。

我對鏈表操作概念很不清楚。在求和函數中的temp必須要給他申請空間么?我最初就把temp設成普通指針變量,通過移動他的位置來指向當前結點,但是好像鏈表一點都沒鏈起來。麻煩哪位好心人能幫我詳細解釋一下這個鏈接的過程啊:)不勝感激啊!

講的詳細我追加分數!關于鏈表的問題已經困擾我很久了。期待高人點撥迷津~~~

總結

以上是生活随笔為你收集整理的用c语言链表编写便利店零售系统,链表实现多项式求和(C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。