数据结构(C语言版) 实验报告
学院 信息工程学院 班级 15计科2班 学号 15131019 姓名 张旭 指导教师 曹晨
实验一 线性表基本操作和简单程序
1. 实验目的
(1)复习Visual C++ 6.0上机调试程序的基本方法及C语言编程;
(2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在链表存储结构上的程序设计方法。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 分别以头插法和尾插法建立两个数据域定义为整型的升序单链表,再将这两个有序链表合并成一个新的无重复元素的有序链表,最后可以根据输入的数据,先找到相应的结点,后删除之。
(3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3. 程序代码
#include
typedef struct node{ int data;
struct node *next; }node;
node * qbuild(node *first) {
int i,n,a[100]; node *s;
printf(\输入n:\ scanf(\
first=(node*)malloc(sizeof(node)); first->next=NULL; for(i=0;i s=(node*)malloc(sizeof(node)); printf(\输入a[%d]:\ scanf(\ s->data=a[i]; s->next=first->next; first->next=s; } return first; } node * hbuild(node *first) { int i,n,a[100]; struct node *s,*r; printf(\输入n:\ scanf(\ first=(node*)malloc(sizeof(node)); r=first; for(i=0;i s=(node*)malloc(sizeof(node)); printf(\输入a[%d]:\ scanf(\ s->data=a[i]; r->next=s; r=s; } r->next=NULL; return first; } node * hebing(node *La,node *Lb) { node *pa,*pb,*pc,*Lc; pa=La->next; pb=Lb->next; Lc=pc=La; while(pa && pb) { if(pa->data < pb->data){ pc->next =pa; pc=pa; pa=pa->next ;