int main(int argc, char *argv[]) { LinkList *l=LinkListInit(); LinkList*m; int i=0; Value v1,v2,v3,v4,v5,v6; Value *temp; v1.data=1; v2.data=2; v3.data=3; v4.data=4; v5.data=5; printf("\n当前链表的长度为:%d\n",LinkListLength(l)); if(LinkListIsEmpty(l)==True) { printf("\n当前链表为空!\n"); } LinkListInsert(l,(LinkListNode*)&v1,0); LinkListInsert(l,(LinkListNode*)&v2,1); LinkListInsert(l,(LinkListNode*)&v3,2); LinkListInsert(l,(LinkListNode*)&v4,3); LinkListInsert(l,(LinkListNode*)&v5,4); printf("\n当前链表的长度为:%d\n",LinkListLength(l)); if(LinkListIsEmpty(l)==True) { printf("\n当前链表为空!\n"); } temp=(Value*)LinkListGet(l,0); printf("\n链表中第%d个结点数据域为:%d\n",0,temp->data); temp=(Value*)LinkListGet(l,1); printf("\n链表中第%d个结点数据域为:%d\n",1,temp->data); temp=(Value*)LinkListGet(l,2); printf("\n链表中第%d个结点数据域为:%d\n",2,temp->data); temp=(Value*)LinkListGet(l,3); printf("\n链表中第%d个结点数据域为:%d\n",3,temp->data); /* for(i=0;i<LinkListLength(l);i++) { temp=(Value*)LinkListGet(l,i); printf("\n链表中第%d个结点数据域为:%d\n",i,temp->data); }*/ LinkListDelete(l,2); printf("\n当前链表的长度为:%d\n",LinkListLength(l)); temp=(Value*)LinkListGet(l,2); printf("\n链表中第%d个结点数据域为:%d\n",2,temp->data); return 0; }
LinkList* LinkListReverse(LinkList* list) { TLinkList* ret = (TLinkList *)list; LinkListNode* current = (LinkListNode*)list; LinkListNode* tmp; if (ret != NULL) { current = current->next; ret->header.next = NULL; while (current != NULL) { tmp = current->next; LinkListInsert(ret, current, 0); current = tmp; } } return ret; }