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++;
}
2.
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--;
}
3.
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;?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ?}
?? ?}
}
4.
#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;
?? ?}
}
?