目录
链表创建的两种方式
指定值位于第几个结点
插入结点
反转链表
链表排序
删除单个结点
单链表是是顺序表的另一种表现形式:通过链式存储,可以非常方便的插入与删除表中的某一元素,因为地址不是连续的,链表的维系是靠单结点的指针来进行链接,所以插入与删除仅需修改一个指针即可。
创建链表的两种方法:
头插法:
LinkPtr AppendNode_head(LinkPtr head, int data) {
LinkPtr p = NULL, pr = head;
p = (Link*)malloc(sizeof(Link));
p->data = data;
if (head == NULL) {
head = p;
p->next = NULL;
}
else {
p->next = pr;
head = p;
}
return head;
}
尾插法:
LinkPtr AppendNode_head(LinkPtr head, int data) {
LinkPtr p = NULL, pr = head;
p = (Link*)malloc(sizeof(Link));
p->data = data;
if (head == NULL) {
head = p;
p->next = NULL;
}
else {
p->next = pr;
head = p;
}
return head;
}
结点寻址:
int LocateNode(LinkPtr head,int target) {
LinkPtr p = head->next;
int cnt = 0;
while (p) {
if (p->data == target) return cnt;
p = p->next;
cnt++;
}
return -1;
}
插入结点:
void Link_Insert(LinkPtr head,int pos,int data) {
LinkP