- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2123229王平实验报告数据结构
数据结构实验报告
班级学号 2123229 学生姓名 王 平 提交日期 2013年12月2日 成 绩
:
计算机与通信工程学院
2013
实验一 线性表的应用
【实验目的】:
1、掌握线性表的逻辑结构定义
2、掌握线性表的两种存储结构(顺序和链式)
3、掌握顺序表和链表的定义及基本操作
【实验内容】
生成26个字母的线性表,并实现对特定字母的插入和删除的程序。
源程序如下:
#includestdio.h
#includemalloc.h
typedef struct list{char data;struct list*link;}test;
test *p,*q,*r,*head,*d;
int L;
int m=sizeof(test);
void build();
void display();
int insert_char(char,char);
int delet_char(char);
void build()
{int i;
head=(test*)malloc(m);
p=head;
for(i=1;iL;i++)
{p-data=i+a-1;
p-link=(test*)malloc(m);
p=p-link;}
p-data=i+a-1;
p-link=NULL;
}
void display(int l)
{d=head;
while(d-link!=NULL)
{printf(%c-,d-data);
d=d-link;}
printf(%c\n,d-data);
printf(the list length is:%d\n,l);
}
int insert_char(char X,char Y)
{p=head;
r=(test*)malloc(m);
r-data=X;
if (Ya) Y=Y+32;
if(head-data==Y)
{head=r;
r-link=p;}
else{while((p-data!=Y)(p-link!=NULL)) {q=p;p=p-link;}
if(p-data==Y){q-link=r;r-link=p;}
else{p-link=r,r-link=NULL;}
}
L++;
return L;
}
int delet_char(char X)
{p=head;
if (Xa) X=X+32;
if(head-data==X){head=head-link;free(p);}
else{while((p-data!=X)(p-link!=NULL))
{q=p;
p=p-link;}
if(p-data==X)
{q-link=p-link;
free(p);}
else return(-1);
}
L--;
return L;
}
void main(void)
{int m,x,y,z,l;
L=26;
build();
display(L);
printf(\n请选择:1.插入字母 2.删除字母\n);
m=getchar();
fflush(stdin); //清除键盘缓冲区
switch(m)
{
case 1: printf(you will insert the char X before char Y:\n);
scanf(%c,%c,x,y);
display(insert_char(x,y));
break;
case 2: printf(you will Delete the char X:\n);
scanf(%c,z);
l=delet_char(z);
display(l);
break;
default:printf(ERROR,please input your choice of: 1 or 2\n); break;
}
}
链表的创建
源程序如下:
#include stdlib.h
#include stdio.h
#includemalloc.h
struct list
{int data;
struct list*next;
};
typedef struct list node;
typedef node *link;
void main()
{link ptr,head;
int num,i;
head=(link)malloc(sizeof(node));
ptr=head;
printf(please input 5 numbers==\n);
for(i=0;i=4;i++)
{scanf(%d,num);
ptr-data=num;
ptr-next=(link)malloc(sizeof(node));
if(i==4)p
文档评论(0)