数据结构实验指导书(2)

2019-03-28 09:10

BEGIN head:=NIL;

write('Please input chars: ');

{read(ch);} {上一条语句会输出一个换行符,}

{我们先把它读出来,丢掉}

read(ch); WHILE (ord(ch)<>13) DO BEGIN new(p); p^.data:=ch; p^.next:=head; head:=p;

read(ch);

END;

v:=head;

END;

{尾插法建表,先进先出}

PROCEDURE createlistr(VAR v:pointer); VAR ch:elemtp;

head:pointer; {头指针} last:pointer; {尾指针}

p:pointer; {工作指针}

BEGIN head:=NIL; last:=NIL;

write('Please input chars: ');

read(ch);

read(ch); WHILE (ord(ch)<>13) DO

6

BEGIN new(p); p^.data:=ch;

IF head=NIL THEN head:=p ELSE last^.next:=p;

last:=p;

read(ch); END;

IF last<>NIL THEN

last^.next:=NIL;

v:=head;

END;

{按序号查找操作}

PROCEDURE getnode(v:pointer; VAR listnode:pointer; i:integer); VAR p:pointer;

j:integer;

BEGIN p:=v; j:=1;

WHILE (p^.next<>NIL) AND (j

j:=j+1;

END;

IF j=i THEN listnode:=p

ELSE listnode:=NIL;

END;

{插入操作,在第i个元素之后插入x,i大于等于0} PROCEDURE insertlist(VAR v:pointer; x:elemtp; i:integer);

VAR

7

p,s:pointer; {工作指针} j:integer;

BEGIN new(p); p^.data:=x;

IF i=0 THEN {如果i=0,则把p结点插入表头} BEGIN p^.next:=v;

v:=p

END

ELSE BEGIN getnode(v,s,i); {返回第i个结点的指针} IF s<>NIL THEN BEGIN p^.next:=s^.next;

s^.next:=p;

END

ELSE writeln('not found');

END;

END;

{删除操作,删除第i个结点,i大于等于1} PROCEDURE deletelist(VAR v:pointer; i:integer); VAR

p:pointer; {工作指针}

BEGIN

IF v<>NIL THEN

BEGIN

8

IF i=1 THEN {如果i=1,则删除头结点}

v:=v^.next

ELSE BEGIN getnode(v,p,i-1); {返回第i-1个结点的指针} IF p<>NIL THEN p^.next:=p^.next^.next

ELSE writeln('erroe');

END;

END

ELSE writeln('The list is null.'); END;

{遍历单链表}

PROCEDURE traverlist(v:pointer); VAR

p:pointer;

BEGIN p:=v;

WHILE (p<>NIL)DO BEGIN write(p^.data,' ');

p:=p^.next;

END;

END;

{建立线性表} VAR

la,lb:pointer;

listnode:pointer;

9

c:elemtp;

m:integer;

BEGIN createlistf(la); writeln(la^.data); createlistr(lb); writeln(lb^.data); getnode(la,listnode,3);

IF listnode<>NIL THEN writeln(listnode^.data) ELSE writeln('null');

traverlist(la);

writeln('');

traverlist(lb);

writeln(''); writeln('Input a char and an integer:');

read(c);

read(c,m); insertlist(la,c,m); traverlist(la); writeln('');

deletelist(lb,3);

traverlist(lb);

END.

实验三 二叉树操作

一、实验目的

1.进一步掌握指针变量的含义。

2.掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。3.掌握用指针类型描述、访问和处理二叉树的运算。

10


数据结构实验指导书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018中考历史模拟试卷附答案选择题专项训练

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: