《数据结构》实训报告

《数据结构》实训报告
《数据结构》实训报告

实验一线性表

1.实验要求

1.1掌握数据结构中线性表的基本概念。

1.2熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及

合并并运算在顺序存储结构上的实验。

1.3熟练掌握链表的各种操作与应用。

2.实验内容

2.1编写一个函数,从一个给定的顺序表A中删除元素值在x到y之间的所有

元素,要求以较高效率来实现。

2.2试写一个算法,在无头结点的动态单链表上实现线性表插入操作

2.3设计一个统计选票的算法,输出每个候选人的得票结果。

3.实验代码

2、1代码:

#include

typedef int elemtype;

#define maxsize 10

int del(int A[],int n,elemtype x,elemtype y)

{

int i=0,k=0;

while(i

{if(A[i]>=x&&A[i]<=y)

k++;

else

A[i-k]=A[i];

i++;

}

return(n-k);

}

void main()

{

int i,j;

int a[maxsize];

printf("输入%d个数:\n",maxsize);

for(i=0;i

scanf("%d,",&a[i]);

j=del(a,maxsize,1,3);

printf("输出删除后剩下的数:\n");

for(i=0;i

printf("%d "\n,a[i]);

}

2、2代码:

INSERT(L,i,b)。

void Insert(Linklist &L,int i,elemtype x)

{

if(!L)

{

L=(Linklist)malloc(sizeof(Lnode));

(*L)、data=x;(*L)、next=NULL;

}

else

{

if(i==1)

{

s=(Linklist)malloc(sizeof(Lnode));

s->data=x;s->next=L;L=s;

}

else

{

p=L;j=1;

while(p&&j

{j++;p=p->next;}

if(p||j>i-1)

return error;

s=(Linklist)malloc(sizeof(Lnode));

s->data=x;s->next=p->next;p->next=s;

}

}

}

2、3代码:

typedef int elemtype

typedef struct linknode

{

elemtype data;

struct linknode *next;

}nodetype;

nodetype *create()

{

elemtype d;

nodetype h=NULL,*s,*t;

int i=1;

printf("建立单链表:\n");

while(1)

{

printf("输入第%d个结点数据域",i);

scanf("%d",&d);

if(d==0)break;

if(i==1)

{

h=(nodetype *)malloc(sizeof(nodetype));

h->data=d;h->next=NULL;t=h;

}

else

{

s=(nodetype *)malloc(sizeof(nodetype));

s->data=d;s->next=NULL;t->next=s;

t=s;

}

i++;

}

return h;

}

void sat(nodetype *h,int a[])

{

nodetype *p=h;

while(p!=NULL)

{

a[p->data]++;

p=p->next;

}

}

void main()

{

int a[N+1],i;

for(i=0;i

a[i]=0;

nodetype *head;

head=create();

sat(head,a);

printf("候选人:");

for(i=1;i<=N;i++) printf("%3d",i);

printf("\n得票数\n");

for(i=1;i<=N;i++)

printf("%3d",a[i]);

printf("\n");

}

4.实验小结

线性表就是最简单的、最常用的一种数据结构,就是实现其她数据结构的基础。

实验二栈与队列

1.实验要求

1.1了解栈与队列的特性,以便灵活运用。

1.2熟练掌握栈与有关队列的各种操作与应用。

2.实验内容

2.1设一个算术表达式包括圆括号,方括号与花括号三种括号,编写一个算法

判断其中的括号就是否匹配。

3.实验代码

2、1代码:

#include

#include

#include

#define NULL 0

typedef struct list

{

char str;

struct list *next;

}list;

void push(char,list *);

int pop(char、list *);

void deal(char *str);

main(void)

{

char str[20];

相关文档
最新文档