Реферат Курсовая Конспект
Шаблон связанного списка - раздел Информатика, Линейный список –совокупность однотипных элементов, расположенных последовательно друг за другом, количество элементов в списке не фиксируется Для Создания Шаблона Требуется, · Чтобы Объ...
|
Для создания шаблона требуется,
· чтобы объявление операций и реализация этих операций находились в одном файле (3-х файловая программа не работает).
· template <class tip> помешают перед каждой функцией и структурой tel (если в ней есть параметр шаблона).
//shablon.h
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
template <class tip>
struct tel
{tip inf;
tel *next;
};
struct point // структура нужна для перегрузки операции,
{double x,y;}; // как другой тип параметра шаблона
// включить элемент в пустой список
template <class tip>
void vkl (tel<tip> * &p, tel<tip> * &q, tip el) //в списке 2 указателя
{p=new tel<tip>;
p->inf=el;
p->next=0;
q=p;
}
// включить элемент в начало списка
template <class tip> // В списке есть элементы
void vklnach(tel<tip> * &p, tip el)
{tel<tip> *r =new tel <tip>;
r->inf =el;
r->next =p;
p=r;
}
//включить элемент в конец списка
template <class tip>
void vklkon (tel<tip> * &q, tip el)
{q->next=new tel<tip>;
q =q->next;
q->inf=el;
q->next=0;
}
//выдать все эл-ты из св. списка в файл
template <class tip>
void wrf (ofstream & f, tel<tip> * p)
{tel<tip> *r = p;
while (r)
{f<< r->inf<<" ";
r=r -> next;}
f<<endl;
}
// удаление списка
template <class tip>
void delsp(tel<tip> * &p, tel<tip> * &q)
{tel<tip> *r;
while (p)
{r=p;
p=p->next;
delete r;
}
q=0;
}
//перегрузка операции<<
ofstream & operator << (ofstream & f, point p)
{f<<p.x<<" "<<p.y<<'n';
return f;
}
#include "shablonsp.h"
int main()
{tel<int> *beg=0, *kon=0;
ifstream fin;
ofstream fout;
fin.open("dan.txt");
if (fin.fail())
{cout<<"error open file dan.txt "<<endl; return 1;}
fout.open("rez.txt");
if (fout.fail())
{cout<<"error open file rez.txt "<<endl; return 1;}
int m;
int z=1;
if (fin>>m) vkl (beg, kon, m);
while (fin>>m)
{if (z>0) vklnach (beg,m);
else vklkon (kon,m);
z=-z;
}
wrf (fout, beg);
delsp (beg, kon);
fin.close();
fout.close();
tel<point>*u=0,*v=0;
fin.clear();
fout.clear();
fin.open("danp.txt"); if (fin.fail())
{cout<<"error open file danp.txt "<<endl; return 1;}
fout.open("rez.txt",ios::app);
if (fout.fail())
{cout<<"error open file rez.txt "<<endl; return 1;}
point b;
z=2;
if (fin>>b.x>>b.y) vkl (u,v,b);
while (fin>> b.x>>b.y)
{if(z>0) vklnach(u,b);
else vklkon (v,b);
z=-z;
}
wrf(fout,u);
delsp(u,v);
fin.close();
fout.close();
return 0;
}
dan.txt
32 5 6 7 8 9 21 33 65
danp.txt
1 2.5
2 3
3 1
4 2
5 9
6 4
7 5
– Конец работы –
Эта тема принадлежит разделу:
Линейный список совокупность однотипных элементов расположенных последовательно друг за другом количество элементов в списке не фиксируется...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Шаблон связанного списка
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов