第一种:
#include <string.h> #include <stdlib.h> typedef struct list{ struct list *next; int data; }list, *p_list; list * insert_no_effect(list *head, list * in_node) { list *p = head; if(in_node->next) return NULL; while(p) { p = ((p)->next); } p = in_node; return head; } list * insert_with_effect(list *head, list * in_node) { list **p = &head; if(in_node->next) return NULL; while(*p) { p = &((*p)->next); } *p = in_node; return head; } int _tmain(int argc, _TCHAR* argv[]) { list *head = (p_list)malloc(sizeof(list)); head->next = NULL; head->data = 1; list *in_node = (p_list)malloc(sizeof(list)); in_node->next = NULL; in_node->data = 2; insert_with_effect(head, in_node); return 0; }
第二种:
#include <stdlib.h> typedef struct ItemList{ int data; struct ItemList *pNext; }ItemList, *pItemList; void insert(int data, pItemList in_Item) { pItemList p = in_Item; if(!p) return ; while(p->pNext) { p = p->pNext; } p->pNext = (pItemList)malloc(sizeof(ItemList)); p = p->pNext; p->pNext = NULL; p->data = data; return; } int _tmain(int argc, _TCHAR* argv[]) { ItemList tt = {0, NULL}; insert(100, &tt); tt; return 0; }