69,369
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
typedef enum{success,fail,fatal,range_error}Status;
typedef char ElemType;
typedef struct node{ //定义节点
ElemType data;
struct node *next;
} ListNode,*ListNodePtr;
typedef ListNodePtr List, *ListPtr;
int main()
{
//ListPtr M=NULL;
List M = NULL;
Status List_Create(ListPtr L,ElemType elem[],int n);
//Status List_Print(node *N);
Status List_Print(List N);
ElemType a[]={'a','b','c','d','e','f'};
//List_Create(M,a,6);
List_Create(&M,a,6);
List_Print(M);
return 0;
}
Status List_Create(ListPtr L,ElemType elem[],int n)
{ //创建单链表
Status status=success;
//ListNodePtr p,q;
List p, q;
int i=n-1;
//q=(ListNodePtr)malloc(sizeof(ListNode));
*L = (List)malloc(sizeof(ListNode)); /*创建头结点*/
(*L)->next = NULL;
q = *L;
while(i>=0){
//p=(ListNodePtr)malloc(sizeof(ListNode));
p = (List)malloc(sizeof(ListNode));
if(p==NULL){
status=fatal;
break;
}
p->data=elem[i];
p->next=q->next;
q->next=p;
i--;
}
//*L=q;
return status;
}
Status List_Print(List N){ //打印链表
Status status=fail;
//while(N!=NULL){
while(N->next!=NULL){
printf("%c",N->next->data);
N=N->next;
status=success;
}
printf("\n");
return status;
}