C++链表实现.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络工程师CCNA+CCNP 系统管理员网络管理员MCSE2003 软件开发工程师认证MCPD 一般线性链表类的C++实现 出处: 作者:小罗 日期:2007年01月24日 14时48分 以下的C++类LinkList实现了线性链表的一般操作。可以直接在其他的程序中直接建立它的对象,其中线性表中的数据在此为整型,具体应用的时候可以适当的修改,并可以在此基础上继续封装特定的功能。 头文件:LinkList.h typedef struct LNode { int data; struct LNode *next; }LNode, *pLinkList; class LinkList { private: pLinkList m_pList; int m_listLength; public: LinkList(); ~LinkList(); bool InitList (); bool DestroyList (); bool ClearList(); bool IsEmpty (); int GetLength (); bool GetNode(int position, LNode** node); int LocateElem(int elem); bool SetNodeData(int position, int newData); bool GetNodeData(int position, int data); bool InsertNode(int beforeWhich, int data); bool DeleteNode(int position); }; Cpp文件:LinkList.cpp #include iostream.h #include LinkList.h LinkList::LinkList() { m_pList = NULL; m_listLength = 0; InitList(); } LinkList::~LinkList() { if (!DestroyList()) { ??DestroyList(); } } //初始化,分配一个头节点。 bool LinkList::InitList() { if (!(m_pList = new LNode)) { ??return false; } m_pList-next = NULL; return true; } //销毁链表。 bool LinkList::DestroyList() { if (!ClearList()) { ??return false; } delete m_pList; return true; } //判断链表是否为空。若为空,返回true,否则返回false。 bool LinkList::IsEmpty() { if (m_pList-next == NULL) { ??return true; } return false; } //返回链表的中当前节点数。 int LinkList::GetLength() { return m_listLength; } //将链表清空,释放当前所有节点。 bool LinkList::ClearList() { if (m_pList == NULL) { ??return false; } LNode *pTemp = NULL; while (m_pList-next != NULL) { ??pTemp = m_pList-next; ??m_pList-next = pTemp-next; ??delete pTemp; } m_listLength = 0; return true; } //将position指定的节点内的数据设置为newData。 //第一个有效节点的position为1。 bool LinkList::SetNodeData(int position, int newData) { LNode *pTemp = NULL; if (!(GetNode(position, pTemp))) { ??return false; } pTemp-data = newData; return true; } //得到指定位置节点的数据。 //节点索引从1到listLength。 bool LinkList::GetNodeData(int position, int data) { LNode *pTemp = NULL; if (!(GetNode(position, pTemp))) { ??return false; } data = pTemp-data; retur

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档