数据结构c++顺序表、单链表的基本操作-查找、排序代码

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1:顺序表的基本操作

实验2:单链表的基本操作

实验3:查找

实验4:排序

实验1代码及结果:

#include

using namespace std;

template

class sq_LList

{private:

int mm;

int nn;

T *v;

public:

sq_LList(){mm=0;nn=0;return;}

sq_LList(int);

void prt_sq_LList();

int flag_sq_LList();

void ins_sq_LList(int,T);

void del_sq_LList(int);

};

//建立空顺序表

template

sq_LList::sq_LList(int m)

{mm=m;

v=new T[mm];

nn=0;

return;

}

//顺序输出顺序表中的元素与顺序表长度template

void sq_LList::prt_sq_LList()

{int i;

cout<<"nn="<

for(i=0;i

}

//检测顺序表的状态

template

int sq_LList::flag_sq_LList()

{if(nn=mn)return(-1);

if(nn=0)return(0);

return (1);

}

//在表的指定元素前插入新元素

template

void sq_LList::ins_sq_LList(int i,T b)

{int k;

if(nn==mm)

{cout<<"overflow"<

if(i>nn)i=nn+1;

if(i<1)i=1;

for(k=nn;k>=i;k--)

v[k]=v[k-1];

v[i-1]=b;

nn=nn+1;

return ;

}

//在顺序表中删除指定元素

template

void sq_LList::del_sq_LList(int i) {int k;

if(nn==0)

{cout<<"underflow!"<

return;

}

for(k=i;k

v[k-1]=v[k];

nn=nn-1;

return ;

}

int main()

{sq_LLists1(100);

cout<<"第一次输出顺序表对象s1:"<

s1.ins_sq_LList(0,1.5);

s1.ins_sq_LList(1,2.5);

s1.ins_sq_LList(4,3.5);

cout<<"第二次输出顺序表对象s1:"<

s1.del_sq_LList(0);

s1.del_sq_LList(2);

cout<<"第三次输出顺序表对象s1:"<

return 0;

}

运行及结果:

实验2代码

#include #include

using namespace std;

struct node{

float data;

node *next;

};

node *create(){ //建立单链表

node *head,*p,*s;

head=new node;

p=head;

p->data=0;

p->next=0; //表头创建完成

float newnum=0;

cin>>newnum;

if(newnum<0){

cout<<"未输入数据...\n";//输入负数则结束

system("pause");}

while(newnum>=0 ){ //??如何用字符型作为结束标志 s=new node; //创建表中数据

s->data=newnum;

p->next=s;

p=s;

cin>>newnum;}

p->next=NULL; //最后元素指针

return(head); //返回空表头

}

//插入一个结点x,将成为第i个节点

void insertnode(node *head,int i,float x){

node *s,*p;

int j;

s=new node;

s->data=x;

p=head;

j=1; //查找第i个结点,由p指向

while(p!=NULL && j

j++;

p=p->next;}

s->next=p->next;

p->next=s;

}

//删除结点x

void deletenode(node *head,float x){

node *p,*s;

相关文档
最新文档