晓庄-数据结构(C语言版)实验报告 下载本文

内容发布更新时间 : 2024/12/24 7:28:26星期一 下面是文章的全部内容请认真阅读。

数据结构(C语言版) 实验报告

学院 信息工程学院 班级 15计科2班 学号 15131019 姓名 张旭 指导教师 曹晨

实验一 线性表基本操作和简单程序

1. 实验目的

(1)复习Visual C++ 6.0上机调试程序的基本方法及C语言编程;

(2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在链表存储结构上的程序设计方法。

2. 实验要求

(1) 认真阅读和掌握和本实验相关的教材内容。

(2) 分别以头插法和尾插法建立两个数据域定义为整型的升序单链表,再将这两个有序链表合并成一个新的无重复元素的有序链表,最后可以根据输入的数据,先找到相应的结点,后删除之。

(3) 上机运行程序。

(4) 保存和打印出程序的运行结果,并结合程序进行分析。

3. 程序代码

#include #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 ;