数据结构实验报告
- 格式:doc
- 大小:51.00 KB
- 文档页数:10
实验一顺序表的操作(2013-3-14)
一、实验目的
1、掌握使用C++上机调试的基本方法;
2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构上的运算。
二、实验要求
1、认真阅读和掌握本实验的程序。
2、上机运行本程序。
3、保存和打印出程序的运行结果,并结合程序进行分析。
4、按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
三、实验内容
程序1:线性表基本操作的实现
这个程序中演示了顺序表的创建、插入、删除和查找,请修改并完成。
程序如下:
#include
#include
/*顺序表的定义:*/
#define ListSize 100
typedef struct
{ int data[ListSize]; /*向量data用于存放表结点*/
int length; /*当前的表长度*/
}SeqList;
void main()
{ void CreateList(SeqList *L,int n);
void PrintList(SeqList *L,int n);
int LocateList(SeqList *L,int x);
void InsertList(SeqList *L,int x,int i);
void DeleteList(SeqList *L,int i);
SeqList L;
int i,x;
int n=10; /*THE LENGTH OF LIST*/
L.length=0;
clrscr();
CreateList(&L,n); /*CREAT THE LIST*/
PrintList(&L,n); /*PRINT THE LIST*/
printf("INPUT THE RESEARCH ELEMENT");
scanf("%d",&x);
i=LocateList(&L,x);
printf("the research position is %d\n",i); /*顺序表查找*/ printf("input the position of insert:\n");
scanf("%d",&i);
printf("input the value of insert\n");
scanf("%d",&x);
InsertList(&L,x,i); /*顺序表插入*/
PrintList(&L,n); /*打印顺序表*/
printf("input the position of delete\n");
scanf("%d",&i);
DeleteList(&L,i); /*顺序表删除*/
PrintList(&L,n);
getch();/*打印顺序表*/
}
/*顺序表的建立:*/
void CreateList(SeqList *L,int n)
{int i;
printf("please input n numbers\n");
for(i=1;i<=n;i++)
{scanf("%d",&L->data[i]);
}
L->length=n;
}
/*顺序表的打印:*/
void PrintList(SeqList *L,int n)
{int i;
printf("the sqlist is\n");
for(i=1;i<=n;i++)
printf("%d ",L->data[i]);
}
/*顺序表的查找:*/
int LocateList(SeqList *L,int x)
{int i;
for(i=1;i<=10;i++)
if((L->data[i])==x) return(i);
else return(0);
}
/*顺序表的插入:*/
void InsertList(SeqList *L,int x,int i)
{int j;
for(j=L->length;j>=i;j--)
L->data[j+1]=L->data[j];
L->data[i]=x;
L->length++;
}
/*顺序表的删除:*/
void DeleteList(SeqList *L,int i)
{ int j;
for(j=i;j<=(L->length)-1;j++)
L->data[j]=L->data[j+1];
}
实验二单链表操作(2013-3-28)
一、实验目的
掌握单链表的基本操作:插入、删除、查找等运算。
二、实验要求
1、认真阅读和掌握本实验的程序。
2、上机运行本程序。
3、保存和打印出程序的运行结果,并结合程序进行分析。
4、按照你对单链表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
三、实验内容
程序1:单链表基本操作的实现
这个程序中演示了单链表的创建、插入、删除和查找。
程序如下:
#include
typedef struct node{
int data;
struct node *next;
} NODE;
/******************************************/
NODE *Create(){
NODE *p,*head;
int x;
head=(NODE *)malloc(sizeof(NODE));
head->next=NULL;
printf("Input data,-1 to End!\n");
scanf("%d",&x);
while(x!=-1){
p=(NODE *)malloc(sizeof(NODE));
p->data=x;
p->next=head->next;
head->next=p;
scanf("%d",&x);
}
return(head);
}
/******************************************/
void Output(NODE *head){
NODE *p;
p=head;
printf("Begin to dump the LinkList...\n");