静态链表:InsertAt(Node *nodeFirst,Node& node,int destIndex)

来源:互联网 发布:js获取应用上下文 编辑:程序博客网 时间:2024/04/29 06:26
// 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;}/*3zhao qian shun li插入nodeArry[5]:wu到nodeArry[1]之后zhao qian wu shun li插入nodeArry[4]:zhou到nodeArry[2]zhao qian zhou wu shun liHello World!Press any key to continue*/