scNode[1]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 liluvu 的 blog

#ifndef scnode_h
#define scnode_h

typedef struct node {
    int data;
    node* next;
}node,*linklist;

int initialize(linklist& list);
int cleanup(linklist& list);

int insertdata(linklist& list, int data);
int deletedata(linklist& list, int data); 
int searchdata(linklist& list, int data); // return the index that first find 

#endif

 

#include "scnode.h"
#include <stdlib.h>
#include <iostream>

using namespace std;

int initialize(linklist& list) {
   int retval = 1;
   int headnumber = 0;
   node* head = new node;
  
   if (null != head) {
      head->data = headnumber;
      head->next = head;
      list = head;
      retval = 1;
   } else {
      retval = 0;
   }
  
   return retval;
}

int cleanup(linklist& list){
    node* head = list;
    node* pnode = head;
    node* deletenode = null;
    int retval = 1;  
  
    if (null == head) {
        retval = 1;  
    } else {
        deletenode = pnode->next;
        while (deletenode != head) {
             pnode = deletenode->next;
             delete deletenode;
             deletenode = pnode;
        }
        delete head;
        retval = 1;
    }
   
    return retval; 
}

int insertdata(linklist& list, int data) {
    static int nodenumber = 0;
    node* head  = list;
    node* pnode = head;
    node* insertnode = new node;
    int retval = 1;
      
    if (null != insertnode) {       
        if (null == pnode) {               
            retval = 0;
        } else {   
            while (pnode->next != head) {
                 pnode = pnode->next;
            }
            pnode->next = insertnode;
            insertnode->next = head;
            insertnode->data = data;
            nodenumber++;
            head->data = nodenumber;           
            retval = 1;                    
        }
    } else {
        retval = 0;
    }
   
    return retval;
}


int searchdata(linklist& list, int data) {
    node* head = list;
    node* pnode = head;
    node* searchnode = null;
    int index = 1;
   
    if (null == head) {
       index = -1;   
    } else {
        searchnode = pnode->next;
        while ((searchnode != head) && (searchnode->data != data)) {
               pnode = searchnode;

本文关键:scNode
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top