// staticList.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <string.h>
typedef struct _Node
{
void setName(char* p)
{
memset(name,0,256);
strcpy(name,p);
}
char name[256];
int next;
}Node;
void printAll(Node *nodeArry)
{
int cur=0;
while(cur>=0)
{
printf("%s ",nodeArry[cur].name);
cur=nodeArry[cur].next;
}
printf("\n");
}
void InsertAfter(Node *nodePrev,Node& node,int index)
{
node.next=nodePrev->next;
nodePrev->next=index;
}
//*
void InsertAt(Node *nodeFirst,Node& node,int destIndex)
{
int cur=0;
//Node *nodeWalker=nodeFirst;
for(int i=0;i<destIndex-1;i++)
{
cur=nodeFirst[cur].next;
//nodeWalker=&nodeFirst[cur];
}
InsertAfter(&nodeFirst[cur],node,(&node)-nodeFirst);
}
//*/
int main(int argc, char* argv[])
{
Node nodeArry[10];
nodeArry[0].setName("zhao");
nodeArry[0].next=1;
nodeArry[1].setName("qian");
nodeArry[1].next=2;
nodeArry[2].setName("shun");
nodeArry[2].next=3;
nodeArry[3].setName("li");
nodeArry[3].next=-1;
printf("%d\n",&nodeArry[3]-&nodeArry[0]);
printAll(nodeArry);
printf("插入nodeArry[5]:wu到nodeArry[1]之后\n");
nodeArry[5].setName("wu");
nodeArry[5].next=-1;
InsertAfter(&nodeArry[1],nodeArry[5],5);
printAll(nodeArry);
printf("插入nodeArry[4]:zhou到nodeArry[2]\n");
nodeArry[4].setName("zhou");
nodeArry[4].next=-1;
InsertAt(&nodeArry[0],nodeArry[4],2);
printAll(nodeArry);
printf("Hello World!\n");
return 0;
}
/*
3
zhao qian shun li
插入nodeArry[5]:wu到nodeArry[1]之后
zhao qian wu shun li
插入nodeArry[4]:zhou到nodeArry[2]
zhao qian zhou wu shun li
Hello World!
Press any key to continue
*/
静态链表:InsertAt(Node *nodeFirst,Node& node,int destIndex)
最新推荐文章于 2020-08-03 10:52:20 发布