C/C++ | 28-20 写出程序删除链表中的所有节点

来源:互联网 发布:善用佳软 知乎 编辑:程序博客网 时间:2024/06/06 03:10
/*删除所有链表的节点*/#include <cstdio>#include <deque>#include <algorithm>#include <iterator>#include <stdio.h>  #include <stdlib.h>#include <iostream>#include <string.h>#include <assert.h>using namespace std;typedef struct LNode{int data;struct LNode *next;}LNode;LNode *CreatLink(int num)  // 构造{int i=1;LNode *head, *tail, *p;head = (LNode *)malloc(sizeof(LNode));tail = head;while (num--){p = (LNode *)malloc(sizeof(LNode));p->data = i;tail->next = p;tail = p;i++;}tail->next = NULL;return head;}LNode *FindLink(LNode *head,int X)  //查找{assert( head != NULL);LNode *chick=head->next;while (chick != NULL){if (chick->data == X)return chick;elsechick = chick->next;}return NULL;}void DeleteLink(LNode *head, int X)  //删除{assert(head != NULL);LNode *p;LNode *q;p=FindLink(head, X);q = p->next;p->data = q->data;p->next = q->next;free(q);}void DeleteAllLink(LNode *head){assert(head != NULL);LNode *p ;while (head!=NULL){p = head->next;free(head);head = p;}cout << "all Linked Deleted!" << endl;  //在这里head已为NULL}int main(){LNode *head = CreatLink(50);DeleteLink(head, 5);DeleteAllLink(head);system("pause");//这里head随机给值了return 0;}

阅读全文
0 0
原创粉丝点击