📄 slnode.h
字号:
typedef struct Node
{
DataType data;
DataType d;
struct Node *next;
}SLNode;
void ListInitiate(SLNode **head)
{
if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL) return;
(*head)->next=NULL;
}
int ListLength(SLNode *head)
{
SLNode *q=head;
int size=0;
while(q->next!=NULL)
{
q=q->next;
size++;
}
return size;
}
int ListInsert(SLNode *head,int i,DataType x)
{ //0<=i<=n; size=lenth=n;
SLNode *p,*q;
int j;
p=head;
j=-1;
while(p->next!=NULL&&j<i-1)
{//最终让指针p指向第i-1个结点
p=p->next;
j++;
}
if(j!=i-1)
{
printf("插入位置有误!\n");
return 0;
}
if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)
return 0;
q->data=x;
q->next=p->next;
p->next=q;
return 1;
}
int ListDelete(SLNode *head,int i,DataType *x)
{
SLNode *p,*q;
int j;
p=head;
j=-1;
while(p->next!=NULL&&p->next->next!=NULL&&j<i-1)
{
p=p->next;
j++;
}
if(j!=i-1)
{
printf("删除位置有误\n");
return 0;
}
else
{
q=p->next;
p->next= p->next->next;
*x=q->data;
free(q);
return 1;
}
}
int ListGet(SLNode *head,int i,DataType *x)
{
SLNode *p;
int j;
p=head;
j=-1;
while(p->next!=NULL&&j<i)
{
p=p->next;
j++;
}
if(j!=i)
{
printf("取元素位置出错\n");
return 0;
}
*x=p->data;
return 1;
}
void ListDestory(SLNode **head)
{
SLNode *p,*q;
p=*head;
while(p!=NULL)
{
q=p;
p=p->next;
free(q);
}
*head=NULL; //撤消后头指针还要置空
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -