// ListTable.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <string.h>
typedef struct _Node
{
_Node(char *varname,_Node& prev,int isNexttoSb=1)
{
memset(name,0,256);
strcpy(name,varname);
if(isNexttoSb)
prev.pNext=this;
pNext=NULL;
}
_Node(char *varname)
{
memset(name,0,256);
strcpy(name,varname);
pNext=NULL;
}
char name[256];
struct _Node* pNext;
}Node,*PNode;
void printAll(PNode pnode)
{
do
{
printf("%s\n",pnode->name);
pnode=pnode->pNext;
}while(pnode!=NULL);
}
char* getName(PNode pnode,int index)
{
for(int i=0;i<index;i++)
{
pnode=pnode->pNext;
if(pnode==NULL)
return NULL;
}
return pnode->name;
}
void InsertNode(PNode pPrenode,Node& node)
{
node.pNext=pPrenode->pNext;
pPrenode->pNext=&node;
}
PNode RemoveNode(PNode pPrenode)
{
PNode nodeRemoved=pPrenode->pNext;
pPrenode->pNext=nodeRemoved->pNext;
return nodeRemoved;
}
int main(int argc, char* argv[])
{
Node zhao("zhao",*(reinterpret_cast<Node*>(NULL)),0);
PNode pFirst=&zhao;
Node qian("qian",zhao);
Node shun("shun",qian);
Node li("li",shun);
printAll(pFirst);
for(int i=0;i<10;i++)
printf("%s ",getName(pFirst,i));
printf("\n");
Node zhou("zhou");
InsertNode(&qian,zhou);
printAll(pFirst);
printf("===============\n");
RemoveNode(&shun);
printAll(pFirst);
printf("===============\n");
printf("Hello World!\n");
return 0;
}
zhao
qian
shun
li
zhao qian shun li (null) (null) (null) (null) (null) (null)
zhao
qian
zhou
shun
li
===============
zhao
qian
zhou
shun
===============
Hello World!
Press any key to continue