实验一线性表[链式存储结构]

实验一线性表[链式存储结构]

ID:1810741

大小:40.50 KB

页数:4页

时间:2017-11-13

实验一线性表[链式存储结构]_第1页
实验一线性表[链式存储结构]_第2页
实验一线性表[链式存储结构]_第3页
实验一线性表[链式存储结构]_第4页
资源描述:

《实验一线性表[链式存储结构]》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验一 线性表一.目的与要求本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。二.例题[问题描述]用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。[输入]初始字符串,插入位置,插入字符,删除字符。[输出]已建立链表(字符串),插入字符后链表,删除字符后链表,逆转后链表。[存储结构]采用链式存储结构[算法的基本思想]建立链表:当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;插入字符:根据读入的字

2、符在链表中找插入位置,将新结点插入到该位置之前;删除字符:根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;链表逆转:从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;打印链表:从链表的第一个结点开始,依次打印各个结点的数据域。[参考源程序]#defineNULL0typedefstructnode{   chara;   structnode*link;}node,*nodelink;voidreadlink(nodelinkhead){   nodelinkp,q;   charc;   p=head;   printf("Inputalinktable(ast

3、ring):");   scanf("%c",&c);   if(c=='')printf("Thisstringisempty。");   while(c!=''){      q=(nodelink)malloc(sizeof(node));      q->a=c;      p->link=q;      p=q;      scanf("%c",&c);    }   p->link=NULL;}voidwritelink(nodelinkhead){   nodelinkq;   if(head->link==NULL)printf("Thislinkisempty。"

4、);   for(q=head->link;q;q=q->link)      printf("%c",q->a);   printf("");   }int insert(nodelinkhead,chark1,chark2){   nodelinkp,q;   p=head->link;   while(p->a!=k1&&p)      p=p->link;   if(p){      q=(nodelink)malloc(sizeof(node));      q->a=k2;      q->link=p->link;      p->link=q;      return1; 

5、   }   else {      printf("Thereisno%c",k1);      return0;     }}int delete(nodelinkhead,chark){   nodelinkp,q;   q=head;   p=head->link;   while(((p->a)!=k)&&p){      q=q->link;      p=p->link;    }   if(p){      q->link=p->link;      return1;      }   else{      printf("Thereisno%c",k);      r

6、eturn0;    }}voidopside(nodelinkhead){   nodelinkp,q;   p=head->link;   while(p->link){      q=p->link;      p->link=q->link;      q->link=head->link;      head->link=q;    }}main(){   chark1,k2,k3;   nodelinkhead;   head=(nodelink)malloc(sizeof(node));   head->link=NULL;   readlink(head);   if(head

7、->link!=NULL){   printf("Buildlinkis:");   writelink(head);}   if(head->link!=NULL){   printf("Pleaseinputacharyouwanttoinsertafter:");   k1=getch();   printf("%c",k1);   printf("Pleaseinputacharyou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。