搜索
您的当前位置:首页链表实验报告

链表实验报告

来源:世旅网


一、实验项目名称

单链表的创建及基本操作

二、实验目的

1.掌握顺序表的基本运算,如插入、删除等。 2.掌握单链表的基本运算,如插入、删除等。

三、实验内容

1.线性表在顺序存储结构上的初始化,插入元素,删除元素,查找元素等基本操作。 2. 两个顺序表合并。

2.线性表在链式存储结构上的建链表,插入结点,删除结点操作。 3. 一元多项式相加(选做)

四、主要仪器设备及耗材

VC++6.0运行环境实现其操作

五、实验步骤

1.实验程序代码

#include #define elemtype int class link {

public:

int data; link *next; };

class linklist {

protected:

link *head; public:

link *rcreat() { link *s,*p,*r; int i; cout<<\"输入多个结点数值(用空格分隔),为0时算法结束\"; cin>>i; p=r=new link; p->next=NULL; while(i) { s=new link; s->data=i; r->next=s; r=s; cin>>i; } r->next=NULL; return p; }

void print(link *head) { link *p; p=head->next; while(p->next!=NULL) { cout<data<<\"->\"; p=p->next; } cout<data; cout<link *Locate(link *head,int x) { link *p; p=head; int j=1; while(p!=NULL&&(jnext; j++; } return p; }

void deletel(link *head,int x)

{ link *p,*q; q=head; p=head->next; while((p!=NULL)&&(p->data!=x)) { q=p; p=p->next; } if(p==NULL) cout<<\"要删除的结点不存在\"; else { q->next=p->next; delete(p); } }

void insert(link *head,int x,int y) { link *p,*s; s=new link; s->data=y; if(head->next==NULL) { head->next=s; s->next=NULL; } p=Locate(head,x); if(p==NULL) cout<<\"插入位置非法\"; else { s->next=p->next; p->next=s; } }

void change(link *p,int x,int y) { link *q; q=p->next; while(q!=NULL) { if(q->data==x) q=q->next;

} }

int count(link *h) { link *p; int n=0; p=h->next; while(p!=NULL) { n++; p=p->next; } return n; } };

void main() { int n; int x,y; link *p,*q; linklist a; p=a.rcreat(); a.print(p); cout<<\"请输入要删除的元素\"; cin>>y; a.deletel(p,y); a.print(p); cout<<\"请输入插入位置\"; cin>>x; cout<<\"请输入待插入元素值\"; cin>>y; a.insert(p,x,y); a.print(p); cout<<\"请输入修改前后的元素值\"; cin>>x>>y; a.change(p,x,y); a.print(p); cout<<\"请输入要查找的元素值\"; cin>>x; q=a.Locate(p,x); if(q==NULL) cout<}

cout<<\"链表中结点个数为:\"<六、实验数据及处理结果

1.处理结果

七、思考讨论题或体会或对改进实验的建议

(1)体会

a.C++语言知识不懂,需要好好学习;

b.对单链表不够熟悉,要多练习创建单链表及其基本操作。

八、参考资料

a.《数据结构》 李根强主编 中国国水利水电出版社

b.《C++语言程序设计》 郑莉 董渊 何江舟编 清华大学出版社

因篇幅问题不能全部显示,请点此查看更多更全内容

Top