今天我们来看看单链表的基本操作:初始化,插入(头插、尾插),查找,删除,判空,求长,摧毁,逆置。
.cpp:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "list.h"
void InitList(List plist)
{
assert(plist != NULL);
plist->next = NULL;
//plist->data不用操作
}
//头插
bool Insert_Head(List plist,int val)
{
Node *p = (Node *)malloc(sizeof(Node));
p->data = val;
p->next = plist->next;
plist->next = p;
return true;
}
//尾插
bool Insert_Tail(List plist,int val)
{
Node *p = (Node *)malloc(sizeof(Node));
p->data = val;
Node *q;
for(q=plist;q->next!=NULL;q=q->next) ;
//将p插入在q的后面
p->next = q->next;//p->next = NULL;
q->next = p;
return true;
}
Node *Search(List p