单链表解析Ⅱ

来源:互联网 发布:java disruptor 教程 编辑:程序博客网 时间:2024/06/14 07:49

定义:

typedef char ListData;typedef struct node{ListData data;struct node * link;}ListNode;typedef ListNode * LinkList;LinkList first; //定义头指针LinkList last;  //定义尾指针

1.前插法建立单链表
前插法

LinkList creatListF(void){    char ch;    ListNode *q;    LinkList head = (LinkList)malloc(sizeof(ListNode));    head->link = NULL;   //建立头结点    while((ch=getchar())!='\n'){  //接收回车符之前的字符        //为每个节点开辟内存空间        q = (ListNode *)malloc(sizeof(ListNode));        q->data = ch;           q->link = head->link;  //将q节点的指针域指向头结点的后继        head->link = q;  //将头结点指向插入的节点    }    return head;    }

2.尾插法建立单链表
尾插法

LinkList creatListF(){    char ch;    ListNode * q;  //q插入节点    LinkList head = (LinkList)malloc(sizeof(ListNode));    head->link = NULL;    last = head;   //初始化指向头结点    while((ch=getchar())!='\n')    {        q = (ListNode *)malloc(sizeof(ListNode));        q->data = ch;           last->link = q;   //将尾节点指针域指向插入节点q;        last = q;   //将尾指针指向q节点;    }    last->link = NULL;   //将尾节点的指针域赋空值    return head;}
原创粉丝点击