实验一 线性表的插入
1.实验名称:线性表的插入
2.实验目的:1.熟练掌握对线性表插入的算法;
2.体会线性表的应用。
3.实验内容:
#include<iostream.h>
template <class elem>
class link
{
public:
elem element;
link *next;
link(const elem &elemval,link *nextval=NULL) {
element=elemval;next=nextval; }
link(link *nextval=NULL)
{
next=nextval;
}
};
template<class elem>
class llist:public link<elem> {
private:
link<elem> *head;
link<elem> *tail;
link<elem> *fence;
int leftcnt,rightcnt;
void init()
{
fence=tail=head=new link<elem>; leftcnt=rightcnt=0;
}
void removeall()
{
while(head!=NULL)
{
fence=head;
head=head->next;
delete fence;
}
}
public:
llist(int size=DefaultLstsizeSize)
{
init();
}
~llist()
{
removeall();
}
bool insert(elem);
bool append(elem &item);
void print();
void collect(llist<elem> &a,llist<elem> &b);
};
template <class elem>
bool llist<elem>::append(elem &item)
{
tail=tail->next=new link<elem>(item ,NULL); rightcnt++;
return true;
}
template <class elem>
bool llist<elem>::insert(elem item)
{
fence->next=new link<elem>(item,fence->next); if(tail==fence) tail=fence->next;
rightcnt++;
return true;
}
template <class elem>
void llist<elem>::print()
{
link<elem> *temp=head;
cout<<'<';
while(temp!=fence)
{
cout<<temp->next->element<<" ";
temp=temp->next;
}
cout<<'|';
while(temp->next!=NULL)
{
cout<<temp->next->element<<" ";
temp=temp->next;
}
cout<<'>'<<endl;
}
void main()
{
llist<int> k(10);
for(int i=1;i<=5;i++)
k.insert(i);
cout<<"链表1:\n";
k.print();
k.insert(100);
cout<<"插入元素后的链表为:\n";
k.print();
}
5.实验结果:
链表1:
<|5 4 3 2 1>
插入元素后的链表为:
<|100 5 4 3 2 1>
实验二:冒泡排序
1.实验名称:冒泡排序
2.实验目的:1.熟练掌握冒泡排序的算法;
2.了解排序的应用。
3.实验内容:
# include<iostream.h>
static int age[5]={27,29,31,25,26}; void main()
{
void sort_age();
void prt_age();
sort_age();
prt_age();
}
void sort_age()
{
extern int size;
size=sizeof(age)/4;
for(int i=1;i<=size-1;i++)
for(int j=0;j<=size-i-1;j++) if(age[j]>age[j+1])
{
int temp;
temp=age[j];
age[j]=age[j+1];
age[j+1]=temp;
}
}
void prt_age()
{
extern int size;
for(int i=0;i<size;i++)
cout<<"age["<<i<<"]:"<<age[i]<<endl; }
int size;
4.实验结果:age[0]:25
age[1]:26
age[2]:27
age[3]:29
age[4]:31