搜索
您的当前位置:首页《数据结构》实验报告题1

《数据结构》实验报告题1

来源:智榕旅游


实验一

课程名称:有序链表的合并 班级:嵌入式2班

姓名:张燕

实验名称:线性表的基本操作

一、实验目的及要求

熟练掌握线性表的基本操作在两种存储结构上的实现,其中以链表的操作和应用作为重点内容。

二、实验环境

硬件:计算机 软件:Microsoft Visual C++

完成日期:10月7日 指导教师:王群芳

实验成绩:

学号:1010431072

实验序号:

三、实验内容

以单链表作存储结构,实现有序表的合并。

四、源程序清单: #include #include

typedef struct lnode{ int data;

struct lnode *next; }lnode,*linklist;

void list_create(linklist &L,int sort) {

int i,n,data; linklist last,p;

L=(linklist)malloc(sizeof(lnode)); last=L;

last->next=NULL;

printf(\"请输入第%d链表长度:\ scanf(\"%d\

printf(\"输入线性表中的元素:\"); for(i=1;i<=n;i++) {

p=(linklist)malloc(sizeof(lnode));

scanf(\"%d\

last->next=p;

1

last=p; }

last->next=NULL; } //list_create

void list_marge(linklist &la,linklist &lb,linklist &lc) {

linklist pa,pb,pc; pc=lc=la;

pa=la->next;pb=lb->next;

while(pa&&pb) }

if(pa->data<=pb->data) { } else { }

pc->next=pb;pc=pb;pb=pb->next; pc->next=pa;pc=pa;pa=pa->next;

{

if(pa)

pc->next=pa; else

pc->next=pb;

free(pb); } //list_marge

void print(linklist List) {

linklist p; p=List->next; while(p) {

printf(\"%d \ p=p->next;

2

}

printf(\"\\n\"); }//print_list

int main()

{

linklist L1,L2,L3; list_create(L1,1); list_create(L2,2); printf(\"合并前:\\n\"); print(L1); print(L2);

printf(\"合并后:\\n\"); list_marge(L1,L2,L3);

print(L3); return 0; }

五、实验结果:

六、总结:

通过本次对有序链表合并程序的设计,我清楚地认识到了以数据结构为基础程序设计的设计方法,其中了解到了用顺序表和单链表作为存储结构的优点和不足,学到了用不同方法来设计程序的各种不同的操作;但在实验设计的具体操作中我仍然存在着各种错误,特别是对有序表的合并操作、各种限制条件的问题以及分配存储空间、结点的指向不能很好的掌握;在今后的学习中,我会多读些程序

3

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

Top