数据结构=。= 链表

为了工作,开始漫漫路

链表结构

  数据部分:数据

  地址部分:下一个结点地址

 

链表结构

typedef struct  Data //Data数据结构
{
    char key[10]; //关键字
    char name[20]; //
    int age;      
}

typedef struct Node //结点结构
{
    Data nodeData;
    struct Node * next;
}ListNode;

链表操作

链表操作中涉及到“增”结点的操作就要先分配空间

 

追加尾结点

步骤:

  1. 分配空间
  2. 检查是否为头指针(head),是head,head=node(插入的节点);不是head,遍历链表,至末尾(headtemp -> next ==null),headtemp ->next = node;

代码:

ListNode *addEnd(ListNode *head,Data nodedata)
{
    ListNode *node,*htemp;
    if(!(node = (ListNode*)malloc(sizeof(ListNode))))
    {
        printf("申请内存失败!\n");
        return NULL;
    }
    else
    {
        node->nodeData = nodeData;
        node->next = NULL;
        if(head == NULL)
        {
            head = node;
            return head;
        }
        htemp = head;
        while(htemp->next != NULL)
        {
            htemp = htemp->next;
        }
        htemp->next = node;
        return head;
    }

}

 

插入头结点

 

步骤和上基本相似,直接说关键操作

node->nodeData = nodeData;
node->next = head;
head = node;

 

posted @ 2016-05-10 16:12  不会水的水牛  阅读(126)  评论(0编辑  收藏  举报