当前位置:编程学习 > 网站相关 >>

重用,我要重用

 完蛋了,面向对象成了习惯,做啥题目都来这套。。。
很简单的问题,创建一个带头结点的循环链表。实现三个功能:
创建循环链表,删除循环链表中数据值为3的倍数的节点,显示链表内容。
 
给大家看看今天早上刚写的热乎的程序,其实就一个CircularLinkList类。CircularLinkList这个名称不大好,将就着用吧,暂时想不到。

第一版:
恩恩,要求干啥就干啥。这是第一反应,也是我交作业的作品。
分别由三个方法来实现
    void createCircularLinkList();
    void deleteCircularLinkList();
    void displayCircularLinkList();
 
/*CircularLinkList.h*/
struct Node{
    int data;
    Node *next;
};
class CircularLinkList{
private:
    Node *head;
    Node *pointer;
public:
    void createCircularLinkList();
    void deleteCircularLinkList();
    void displayCircularLinkList();
};
/*CircularLinkList.cpp*/
#include<iostream>
#include<fstream>
#include"CircularLinkList.h"
using namespace std;
void CircularLinkList::createCircularLinkList(){
    Node *newNode;
    int newData;
    ifstream in("CircularLinkList.data");
    //第一个节点的处理
    if(in){
        //从CircularLinkList.data读入第一个数据
        in>>newData;
        //创建新节点并让newNode指向新节点
        newNode = new Node;
        //为新节点赋值
        newNode->data = newData;
        //让头指针指向第一个节点
        head = newNode;
        //让pointer指向第一个节点
        pointer = newNode;
    }
    for(; in; ){
        //从CircularLinkList.data读入一个数据
        in>>newData;
        //创建新节点并让newNode指向新节点
        newNode = new Node;
        //为新节点赋值
        newNode->data = newData;
        //上一个节点指向新节点
        pointer->next = newNode;
        //pointer往前进一格
        pointer = pointer->next;
    }
    //最后一个节点指向第一个节点
    newNode->next = head;
}
void CircularLinkList::deleteCircularLinkList(){
    Node *tmp;
    //pointer指向头结点
    pointer = head;
    /*第一个节点先不判断*/
    for(; ;){
        //判断的是pointer后面的那个节点
        if((pointer->next->data % 3) == 0){
            //让tmp指向
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,