手机版

线性表的插入、冒泡排序

时间:2025-04-27   来源:未知    
字号:

实验一 线性表的插入

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

线性表的插入、冒泡排序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)