链表的逆序

来源:互联网 发布:分割线知乎 编辑:程序博客网 时间:2024/06/05 07:02


创建一个带头节点的链表并把链表的逆序(递归法),链表遍历


#include <stdio.h>#include <stdlib.h>/* define structure of linklist */typedef struct Node{int data;struct Node *next;}Link,LinkList;/*********************************************************** Function   : createDescription: create a linklistParameter  : LinkList **L:linklist head,  int n: length of linklistReturn     : voidAuthot: Puls************************************************************/void create(LinkList **L, int n){LinkList *p;int i;*L = (LinkList*)malloc(sizeof(Link));(*L)->next = NULL;for(i=0; i<n; i++){p = (LinkList*)malloc(sizeof(Link));p->data = i;p->next = (*L)->next;(*L)->next = p;}}/*********************************************************** Function   : printDescription: print linklistParameter  : LinkList **L: linklist headReturn     : voidAuthot: Puls************************************************************/void print(LinkList **L){LinkList *p = (*L)->next;while(p){printf("%d->", p->data);p = p->next;}}/*********************************************************** Function   : reverseLinkDescription: reverse linklistParameter  : LinkList **L: linklist head,Return     : voidAuthot: Puls************************************************************/LinkList* reverseLink(LinkList **L){LinkList *p = *L;if(p==NULL){return; }if(p->next!=NULL){reverseLink(&p->next);/* 递归法逆序链表 */}}/*********************************************************** Function   : mainDescription: program accessParameter  : voidReturn     : Authot: Puls************************************************************/int main(){LinkList *L;create(&L, 10);print(&L);printf("\n");reverseLink(&L);printf("%d->", p->data);}


0 0
原创粉丝点击