单向链表总结.pptVIP

  • 10
  • 0
  • 约4.77千字
  • 约 20页
  • 2017-07-28 发布于浙江
  • 举报
单向链表总结

* * * * * * 单向链表总结 让你的手机休息一会儿,让你的心思回归课堂一会儿。 链表 不带头结点单链表 带头节点单链表 不带头结点循环单链表 带头结点循环单链表 a0 a1 first ∧ a0 a1 first ∧ a0 a1 first a0 a1 first 单链表 循环链表 表尾结点链域指向表头结点 表尾结点链域指向头结点 链表的表示 (1)结点的表示 templatetypename T struct LinkNode { T data; LinkNode* next; }; 链表的表示 不带头结点链表的表示 带头结点链表的表示 templatetypename T class List { private: LinkNodeT * first; }; templatetypename T class List { private: LinkNodeT * first; }; 链表的表示 不带头结点循环单链表 带头结点循环单链表 templatetypename T class List { private: LinkNodeT * first; LinkNodeT* last; }; templatetypename T class List { private: LinkNodeT * first; LinkNodeT* last; }; 空链表 不带头结点单链表 带头结点单链表 first=NULL; first=new LinkNodeType(); 空链表 不带头结点循环单链表 带头结点循环单链表 first=last=NULL; first=new LinkNodeType(); first-next=first; first=last; 链表的遍历 不带头结点单链表 带头结点单链表 LinkNodeType* iter=first; while(iter) { coutiter-data“ “; iter=iter-next; } LinkNodeType *iter=first-next; while(iter) { coutiter-data“ “; iter=iter-next; } 链表的遍历 不带头结点循环单链表 带头结点循环单链表 LinkNodeType* iter=first; if(!iter) return; do { coutiter-data“ “; iter=iter-next; } while(iter!=first) LinkNodeType *iter=first-next; while(iter!=first) { coutiter-data“ “; iter=iter-next; } 返回链表中第i个结点的位置 不带头结点单链表 带头结点单链表 LinkNodeType* iter=first; int cnt=0; while(iter) { cnt++ if(cnt==i) return iter; iter=iter-next; } return iter; LinkNodeType *iter=first; int cnt=-1; while(iter) { cnt++; if(cnt==i) return iter; iter=iter-next; } return iter; 返回链表中第i个结点的位置 不带头结点循环单链表 带头结点循环单链表 LinkNodeType* iter=first; if(!iter) return NULL; int cnt=0; do { cnt++; if(cnt==i) return iter; iter=iter-next; } while(iter!=first) return NULL; LinkNodeType *iter=first; int cnt=-1; do { cnt++; if(cnt==i) return iter; iter=iter-next; } while(iter!=first) return NULL; 在链表第i个位置插入结点 不带头结点单链表 带头结点单链表 LinkNodeType* newNode=new LinkNodeType(elem); if(i==1){ newNode=first-next;

文档评论(0)

1亿VIP精品文档

相关文档