📄 04071402llist.h
字号:
//自定义单链表头文件 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -