1.按位置插入
void insert_pos(seq_p L,datetype value,int pos)
{
if(L==NULL)
{
printf("入参为空\n");
return;
}
if(seq_full(L))
{
printf("表已满\n");
return;
}
if(pos>L->len||pos<0)
{
printf("无法插入\n");
return;
}
for(int i=L->len-1;i>=pos;i--)
{
L->date[i+1]=L->date[i];
}
L->date[pos]=value;
L->len++;
}
void del_pos(seq_p L,int pos)
{
if(L==NULL)
{
printf("入参为空\n");
return;
}
if(seq_empty(L))
{
printf("表为空\n");
return;
}
for(int i=pos;i<L->len-1;i++)
{
L->date[i]=L->date[i+1];
}
L->len--;
}
void del(seq_p L)
{
if(L==NULL)
{
printf("入参为空\n");
return;
}
if(seq_empty(L))
{
printf("表为空\n");
return;
}
for(int i=0;i<L->len;i++)
{
for(int j=i+1;j<L->len;j++)
{
if(L->date[i]==L->date[j])
{
del_pos(L,j);
j--;
return;
}
}
}
}
#include "link_list.h"
link_p creat_head()
{
link_p L = (link_p)malloc(sizeof(link_list));
if(L==NULL)
{
printf("空间申请失败\n");
}
L->len=0;
L->next=NULL;
return L;
}
link_p creat_node(datatype data)
{
link_p new = (link_p)malloc(sizeof(link_list));
if(new==NULL)
{
printf("空间申请失败\n");
}
new->data = data;
return new;
}
void insert_head(link_p H,datatype data)
{
if(H==NULL)
{
printf("入参为空\n");
return;
}
link_p new = creat_node(data);
new->next = H->next;
H->next = new;
H->len++;
}
void insert_tail(link_p H,datatype data)
{
if(H==NULL)
{
printf("入参为空\n");
return;
}
link_p new = creat_node(data);
link_p temp=H;
while(temp->next !=NULL)
{
temp=temp->next;
}
temp->next=new;
H->len++;
}
void out_put(link_p H)
{
if(H==NULL)
{
printf("入参为空\n");
return;
}
while(H != NULL)
{
if(H->next != NULL)
{
printf("%d\n",H->data);
}
else
{
printf("%d\n",H->data);
}
H=H->next;
}
}