《数据结构》实验指导/实验二:单链表的存储及操作 inti=1. LinkList p p= head. next p指向开始结点i置为1(即开始结点的序号为1) while(pl=null&& p data=e)∥查找data值为e的结点,其序号为 P-p if (p== null) ∥不存在元素值为e的结点,返回0 rn(0); ∥在元素值为e的结点返回其逻辑序号i return(i) public bool ListInsert(inti, string e)∥/插入数据元素 int j=0 LinkList s, p: if(<1) ∥i<1时i错误,返回 false return false. p=head p指向头结点j置为0(即头结点的序号为0) while(<i-1&&p I=null) ∥渣找第i-1个结点 if (p== null) ∥找到第i-1个结点返回 false return false. else ∥找到第i1个结点p插入新结点并返回true s=new LinkListo: ∥创建新结点s其data字段置为e s next=p. next 将s结点插入到p结点之后 p next=s return true: public bool List Delete(inti, ref string e)∥删除数据元素 int j=0 LinkList q, p: if(i<1 ∥i<1时i错误,返回 false return false. p=head p指向头结点j置为0(即头结点的序号为0 while(<i-1&& p I=null) ∥渣找第-1个结点 管理科学与工程学科/共7页第4页《数据结构》实验指导 / 实验二:单链表的存储及操作 4 管理科学与工程学科 / 共7页,第4页 int i = 1; LinkList p; p = head.next; //p 指向开始结点,i 置为 1(即开始结点的序号为 1) while (p != null && p.data != e) //查找 data 值为 e 的结点,其序号为 i { p = p.next; i++; } if (p == null) //不存在元素值为 e 的结点,返回 0 return (0); else //存在元素值为 e 的结点,返回其逻辑序号 i return (i); } public bool ListInsert(int i, string e) //插入数据元素 { int j = 0; LinkList s, p; if (i < 1) //i<1 时 i 错误,返回 false return false; p = head; //p 指向头结点,j 置为 0(即头结点的序号为 0) while (j < i - 1 && p != null) //查找第 i-1 个结点 { j++; p = p.next; } if (p == null) //未找到第 i-1 个结点,返回 false return false; else //找到第 i-1 个结点 p,插入新结点并返回 true { s = new LinkList(); s.data = e; //创建新结点 s,其 data 字段置为 e s.next = p.next; //将 s 结点插入到 p 结点之后 p.next = s; return true; } } public bool ListDelete(int i, ref string e) //删除数据元素 { int j = 0; LinkList q, p; if (i < 1) //i<1 时 i 错误,返回 false return false; p = head; //p 指向头结点,j 置为 0(即头结点的序号为 0) while (j < i - 1 && p != null) //查找第 i-1 个结点 { j++;