标签:
//节点结构体 struct inv { int i;//节点元素 struct inv*nextpointer; }; //返回指定元素节点的指针,不包含时返回NULL struct inv* contain(int i,struct inv*head) { struct inv *headp=head; while(headp!=NULL) { if(headp->i==i) { break; } headp=headp->nextpointer; } return headp; } //追加元素 int append(int i,struct inv **headpp) { struct inv *headp=*headpp; struct inv *prev; if(*headpp==NULL) { *headpp=(struct inv*)malloc(sizeof(struct inv)); (*headpp)->i=i; (*headpp)->nextpointer=NULL; return 1; } while(headp!=NULL) { prev=headp; if(headp->i==i) { return 0; } headp=headp->nextpointer; } prev->nextpointer=(struct inv*)malloc(sizeof(struct inv)); prev=prev->nextpointer; prev->i=i; prev->nextpointer=NULL; return 1; } //删除指定元素 int dele(int i,struct inv **headpp) { int returnvalue=0; struct inv*prev; struct inv*headp=*headpp; if(headp==NULL) { return 0; } while(headp->i!=i&&headp->nextpointer!=NULL) { prev=headp; headp=headp->nextpointer; } if(headp->i==i) { if(headp==*headpp) { *headp=*headp->nextpointer; } prev->nextpointer=headp->nextpointer; free(headp); return 1; } return 0; } //删除整个链表 void deleteall(struct inv**head) { struct inv*headp=*head; struct inv*temp; while(headp!=NULL) { temp=headp->nextpointer; free(headp); headp=temp; } *head=NULL; } //扫描打印 void paint(struct inv*headp) { while(headp!=NULL) { printf(" %d\n",headp->i); headp=headp->nextpointer; } }
cpp源码文件: http://pan.baidu.com/s/1bodkQRX
linked list.cpp文件
标签:
原文地址:http://www.cnblogs.com/magicianlyx/p/5161309.html