知识大全 数据结构考研分类复习真题 第二章 答案[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

相关参考