04071402llist.h
来自「数据结构链表的C++源程序,实现简单易懂,绝对正确,直接就可以运行,不需做任何修」· C头文件 代码 · 共 90 行
H
90 行
//自定义单链表头文件 04071402llist.h
typedef struct Lnode //定义链表结构体
{
elemtype data;
struct Lnode *next;
}*llist;
void visit(elemtype e) //输出元素
{
cout<<e<<" ";
}
void listcreat(llist &l) //创建一个空链表
{
l=new Lnode;
l->next=NULL;
}
void listcreat(llist &l,int n,elemtype a[]) //创建一个非空的链表
{
llist p;
int i;
l=new Lnode;
l->next=NULL;
for(i=n-1;i>=0;i--)
{
p=new Lnode;
p->data=a[i];
p->next=l->next;
l->next=p;
}
}
bool getelem(llist l,int i,elemtype &e) //从链表中获取元素
{
llist p;
int j;
for(p=l->next,j=1;p&&(j<i);j++)
p=p->next;
if(!p||i<1)
return false;
e=p->data;
return true;
}
void listtraverse(llist l) //链表的遍历函数
{
llist p;
for(p=l->next;p;p=p->next)
visit(p->data);
}
bool listdelete(llist &l,int i,elemtype &e) //删除节点
{
llist p,q;
int j;
j=0;p=l;
while(p->next&&j<i-1)
{
p=p->next;
j++;
}
if(!(p->next)||(i<1))
return false;
q=p->next;
e=q->data;
p->next=q->next;
delete q;
return true;
}
bool listinsert(llist &l,int i,elemtype e) //插入节点
{
llist p,s;
int j;
j=0;p=l;
while(p&&(j<i-1))
{
p=p->next;
j++;
}
if(!p||i<1)
return false;
s=new Lnode;
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?