#include/系统函数。 #include 因为要使用malloc函数。 struct Node {//全局变量 int data; struct Node* next; }; typedef struct Node Node; Node* Create(); //返回值是Node类型的函数 void Print(Node* head); //传入指针 void Release(Node* head); int main()//主函数。 { Node* head; // head = Create(); Print(head); //只用 Release(head); return 0; } Node* Create() { Node* head, * tail, * p; //头,尾,运动指针// int num;//给输入空间 head = tail = NULL; printf("请输入一批数据,以-9999结尾: n");//如果不按要求就会失败。 scanf_s("%d", &num); while (num != -9999) { p = (Node*)malloc(sizeof(Node)); p->data = num; p->next = NULL; //分情况讨论 挺标准化的。 if (NULL == head) { head = p; //p就像TRNA一样,合成蛋白质。 } else //尾插法 { tail->next = p; } tail = p; //一定要经过的步骤 scanf_s("%d", &num); } return head; } void Print(Node* head) { Node* p; //上一个函数的p是局部变量 p = head; if (NULL == head) { printf("链表为空!n"); } else { printf("链表如下n");//经典步骤 while (p != NULL) { printf("%d ", p->data); p = p->next; } } printf("n"); } void Release(Node* head) { Node* p1, * p2; p1 = head; while (p1 != NULL) { p2 = p1; p1 = p1->next; free(p2); } printf("链表释放内存成功!n"); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)