Pascal链表常用过程的实现.docVIP

  • 4
  • 0
  • 约1.48千字
  • 约 3页
  • 2017-06-07 发布于重庆
  • 举报
Pascal链表常用过程的实现

基本运算的实现: 过程 Insert x,p 功能 在表L的位置p处插入元素x,并将原来占据位置p的元素及其后面的元素都向后推移一个位置。例如,设L为a1,a2,…,an,那么在执行Insert x,p 后,表L变为a1,a2,…ap-1,x,ap,…,an 。若p为End L ,那么表L变为a1,a2,…,an,x 。若表L中没有位置p,则该运算无定义。 实现 Procedure Insert x:datatype;p:pointer ; var temp:integer; begin new temp ; temp^.data: x; temp^.next: p^.next p^.next: temp; end; 上述算法中,链表指针的修改情况见图2 图2 a 是执行Insert运算之前的情况。我们要在指针p所指的单元之后插入一个新元素x。图2 b 是执行Insert运算以后的结果,其中的虚线表示新的指针。 在上述Insert算法中,位置变量p指向单链表中一个合法位置,要插入的新元素x应紧接在p所指单元的后面。指针p的合法性应在执行Insert运算之前判定。往一个单链表中插入新元素通常在表头或表尾进行,因此p的合法性容易判定。Insert运算所需的时间显然为O 1 。 过程 Delete p 功能 从表L中删除位置p的下一元素。例如,当L为a1,a2,…,an时,执行D

文档评论(0)

1亿VIP精品文档

相关文档