ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Представить многочлен в виде линейного списка. Написать прогу кот выполняет сложение многочленов// будем считать что списки упорядочены по возрастанию степеней элементов многочленов list* add(list *t1,list *t2) { list * new_list,*tek; list *l1 = t1; list *l2 = t2; bool flg = false; while((l1!=NULL)&&(l2!=NULL)) {//пока не кончится один из двух многочленов if(l1->s!=l2->s)//если степени не равны { if(l1->s>l2->s)//если степень 1-го больше чем 2-го { while((l1->s!=l2->s)&&(l2!=NULL))//пока степени не выровняются { list *h = new list;//создаем 1-й элемент h->k=l2->k; h->s=l2->s; h->next=NULL; if(!flg)//если это первый элемент {//создаем начало списка flg = true; new_list = h; tek = h; }else{//иначе добавляем в очередь tek->next = h; tek = h; } l2 = l2->next;//перходим к след эл-ту }}else{//если степень 2-го больше чем 1-го while((l1->s!=l2->s)&&(l1!=NULL)){ //пока степени не выровняются list *h = new list;//созд новый эл-т очереди
h->k=l1->k; h->s=l1->s; h->next=NULL; if(!flg) //если это первый элемент {//создаем начало списка flg = true; new_list = h; tek = h; }else{//иначе добавляем в очереь tek->next = h; tek = h; } l1=l1->next; //перходим к след эл-ту }} }else{//если степени равны list *temp = new list; //созд новый эл-т очереди temp->k = l1->k+l2->k;//коэф складываем temp->s = l1->s; temp->next = NULL; if(!flg) { new_list = temp; tek = temp; flg = true; }else { tek ->next = temp; tek = temp; } } l1=l1->next; l2=l2->next; } //проверяем который многочлен не окончился и дописываем в конец резельтирующего многочлена if((l1!=NULL)&&(l2==NULL))//незакончился 1-ый while(l1!=NULL){ list *tt = new list; tt->s = l1->s; tt->k= l1->k; tt->next= NULL; tek->next = tt; tek = tt; l1=l1->next; }else if((l1==NULL)&&(l2!=NULL))//незакончился 2-ой while(l2!=NULL){ list *tt = new list; tt->s = l2->s; tt->k= l2->k; tt->next= NULL; tek->next = tt; tek = tt; l2=l2->next; } return new_list; }
Не нашли, что искали? Воспользуйтесь поиском:
|