知识大全 数据结构考研分类复习真题 第二章 答案[35]
Posted 知
篇首语:习惯不加以抑制,不久它就会变成你生活上的必需品了。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[35]相关的知识,希望对你有一定的参考价值。
[算法讨论] 算法中当查找失败(即线性表中无元素x)时 变量low在变量high的右面(low=high+ ) 移动元素从low开始 直到num为止 特别注意不能写成for(i=low;i<=num;i++)A[i+ ]=A[i] 这是一些学生容易犯的错误 另外 题中未说明若表中已有值为x的元素时不再插入 故安排在A[mid]= =x时 用low(=mid+ )记住位置 以便后面统一处理 查找算法时间复杂度为O(logn) 而插入时的移动操作时间复杂度为O(n) 若用顺序查找 则查找的时间复杂度亦为O(n)
类似本题的其它题的解答
( )[题目分析] 本题与上面 题类似 不同之处是给出具体元素值 且让编写turbo pascal程序 程序如下 PROGRAM example(input output); TYPE pointer=^node; node=RECORD data integer; next pointer; END; VAR head q pointer; PROCEDURE create(VAR la pointer); VAR x integer; p q pointer; BEGIN new(la);la^ next:=NIL;建立头结点 read(x);q:=la;q用以指向表尾 WHILE NOT EOF DO 建立链表 BEGIN new(p);p^ data:=x;p^ next:=q^ next;q^ next:=p;q:=p; read(x); END; END; PROCEDURE insert(VAR la pointer;s pointer); VAR p q pointer;found boolean; BEGIN p:= la^ next;p为工作指针 q:=la;q为p的前驱指针 found:=false; WHILE(p<>NIL)AND NOT found IF(p^ data<x)THEN BEGIN q:=p;p:= p^ next; END ELSE found:=true; s^ next:=p;将s结点插入链表 q^ next:=s; END; BEGIN main writeln( 请按顺序输入数据 建立链表 ) create(head); writeln( 请输入插入数据 ) new(q); readln(q^ data); insert(head q); END 程序结束
[程序讨论] 在建立链表时 输入数据依次为 键入CTRL Z 输入结束 插入数据 输 即可 本题编写的是完整的pascal程序
cha138/Article/program/sjjg/201311/23339相关参考