20XX数据结构实验报告Word格式.docx

上传人:b****5 文档编号:15685817 上传时间:2022-11-15 格式:DOCX 页数:5 大小:16.71KB
下载 相关 举报
20XX数据结构实验报告Word格式.docx_第1页
第1页 / 共5页
20XX数据结构实验报告Word格式.docx_第2页
第2页 / 共5页
20XX数据结构实验报告Word格式.docx_第3页
第3页 / 共5页
20XX数据结构实验报告Word格式.docx_第4页
第4页 / 共5页
20XX数据结构实验报告Word格式.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

20XX数据结构实验报告Word格式.docx

《20XX数据结构实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《20XX数据结构实验报告Word格式.docx(5页珍藏版)》请在冰豆网上搜索。

20XX数据结构实验报告Word格式.docx

[输出]

  已建立链表,插入字符后链表,删除字符后链表,逆转后链表。

[存储结构]

  采用链式存储结构[算法的基本思想]

  建立链表:

当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;

插入字符:

根据读入的字符在链表中找插入位置,将新结点插入到该位置之前;

删除字符:

根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;

链表逆转:

从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;

打印链表:

从链表的第一个结点开始,依次打印各个结点的数据域。

  三.程序清单

  #defineNULL0

  typedefstructnode{  chara;

  structnode*link;

}node,*nodelink;

  voidreadlink(nodelinkhead){  nodelinkp,q;

  charc;

  p=head;

  printf(\scanf(\  if(c=='

\\n'

)printf(\。

\  while(c!

='

  {q=(nodelink)malloc(sizeof(node));

q->

a=c;

  p->

link=q;

p=q;

  scanf(\  }

link=NULL;

}

  voidwritelink(nodelinkhead)  {nodelinkq;

  if(head->

link==NULL)printf(\。

\\n\  for(q=head->

link;

q;

q=q->

link)printf(\  printf(\  }

  intinsert(nodelinkhead,chark1,chark2)  {nodelinkp,q;

  p=head->

  while(p->

a!

=k1&

&

p)p=p->

  if(p){q=(nodelink)malloc(sizeof(node));

  q->

a=k2;

link=p->

p->

return1;

  }

  else{printf(\}}

  intdelete(nodelinkhead,chark){nodelinkp,q;

  q=head;

  while(((p->

a)!

=k)&

p){q=q->

p=p->

}  if(p){q->

  else{printf(\}

  voidopside(nodelinkhead){nodelinkp,q;

link){q=p->

link=q->

link=head->

head->

}}main

  {chark1,k2,k3;

  nodelinkhead;

  head=(nodelink)malloc(sizeof(node));

  readlink(head);

link!

=NULL)

  {printf(\  if(head->

  {printf(\  k1=getch;

  printf(\

  printf(\k2=getch;

  printf(\

  if(insert(head,k1,k2))

  {printf(\  printf(\k3=getch;

  printf(\  if(delete(head,k3))

  {printf(\writelink(head);

}  if(head->

  {printf(\writelink(head);

free(head);

}  }}

  四.运行结果

  Inputalinktable(astring):

dfkdspogjdj↙Buildlinkis:

dfkdspogjdj

  Pleaseinputacharyouwanttoinsertafter:

s↙Pleaseinputacharyouwanttoinsert:

n↙Afterpinserty,linkis:

dfkdsnpogjdj

  Pleaseinputacharyouwanttodelete:

k↙afterdeletep,linkis:

dfdsnpogjdjOpsiteresultis:

jdjgopnsdfd

  五.实验结果与分析

  通过本实验,我熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。

丰富了编程经验,提高了对顺序存储结构的知识点的理解和掌握。

  数据结构  实验二树  博学楼B座  学号:

20XX00  

  实验二树

  任意给定一棵二叉树。

试设计一个程序,在计算机中构造该二叉树,并对它进行遍历。

  [输入]

  一棵二叉树的结点若无子树,则可将其子树看作“.”,输入时,按照前序序列的顺序输入该结点的内容。

对下图,其输入序列为ABD..EH....G..。

  [输出]

  若为空二叉树,则输出:

THISISAEMPTYBINARYTREE。

若二叉树不空,按后序序列输出,对上例,输出结果为:

DHEBIFGCA。

  采用二叉链表存储。

[算法的基本思想]

  采用递归方法建立和遍历二叉树。

首先建立二叉树的根结点,然后建立其左右子树,直到空子树为止。

后序遍历二叉树时,先遍历左子树,后遍历右子树,最后访问根结点。

  #include#includestructnode  {charinfo;

  structnode*llink,*rlink;

  };

  typedefstructnodeNODE;

NODE*creat{charx;

  NODE*p;

  scanf(\printf(\  if(x!

.'

  {p=(NODE*)malloc(sizeof(NODE));

info=x;

llink=creat;

rlink=creat;

  elsep=NULL;

  returnp;

  实验四查找

  将折半查找算法写成完整的程序,并上机通过。

  有序表及待查找记录23,58。

  输入23,表中存在待查找记录,则显示该记录在表中位置2,输入58显示该记录不存在。

  有序表采用顺序方式存储。

  首先用待查找记录与查找区间中间位置记录比较,若相等则查找成功,返回该记录在表中的位置数,若小于中间位置记录,则修改区间上界为中间位置减1,若大于中间位置记录,则修改区间下界为中间位置加1,在新的区间内继续查找。

当查找区间下界大于上界,则该记录不存在。

  #include\typedefstruct{inta[30];

intlength;

}sqtable;

sqtablest;

intb=0;

  voidcreatest(intk){inti;

  printf(\data:

\[0]=-100;

  for(i=1;

(!

b&

(itypedefintnode;

nodeafile[20];

nodex;

intd,dl,n;

intl,r,i,j;

  voidq(intl,intr){  intp;

  d++;

  if(dlx)&

(j>

i))

  j--;

  if(ii))

  i++;

  if(ia=c;

fre

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1