为了工作,开始漫漫路
链表结构
数据部分:数据
地址部分:下一个结点地址
链表结构
typedef struct Data //Data数据结构 { char key[10]; //关键字 char name[20]; // int age; } typedef struct Node //结点结构 { Data nodeData; struct Node * next; }ListNode;
链表操作
链表操作中涉及到“增”结点的操作就要先分配空间
追加尾结点
步骤:
- 分配空间
- 检查是否为头指针(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("申请内存失败! "); 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;