该代码解决的问题属于简单类型的;
如果同样的数值出现几次,执行删除或查询等会出现问题;
不过小编思考或许可以用数组存储地址,然后分别执行操作,目前还待实践。
#include <iostream>
using namespace std;
typedef struct INode{
int data;
struct INode *next;
}INode, *LinkList;
//单链表长度
int Len(LinkList &L)
{
INode *p=L;
int k=0;
while(p!=NULL)
k++;
return k;
}
//头插
bool ListHeadInsert(LinkList &L,int e)
{
INode *h=(INode *)malloc(sizeof(INode));
h->data=e;
h->next=L;
L=h;//令头结点变为h
cout << "头插成功\n";
return true;
}
//尾插
bool ListLastInsert(LinkList &L,int e)
{
INode *s=(INode *)malloc(sizeof(INode *));
s->data=e;
s->next=NULL;
if(L==NULL)
L=s;
else
{
INode *q;
q=L;
while(q->next!=NULL)
{
q=q->next;
}
q->next=s;
}
cout << "尾插成功\n";
return true;
}
//在第i个位置插入e
bool ListInsert(LinkList &L, int i, int e)
{
INode