#include<myhead.h>
typedef struct linklist
{
union
{
int lens;
char data[128];
};
struct linklist *next;
}linklist;
linklist *linklist_creat()
{
linklist *head_ptr=(linklist*)malloc(sizeof(linklist));
head_ptr->lens=0;
head_ptr->next=NULL;
return head_ptr;
}
void linklist_show(linklist *head_ptr)
{
linklist *temp=head_ptr;
while(temp->next!=NULL)
{
temp=temp->next;
printf("%s\n",temp->data);
}
}
void linklist_insert(linklist *head_ptr,int pos,char *data)
{
linklist *temp=head_ptr;
for(int i=pos;i>1;i--)
{
temp=temp->next;
}
linklist *new=(linklist*)malloc(sizeof(linklist));
strcpy(new->data,data);
new->next=temp->next;
temp->next=new;
head_ptr->lens++;
}
void linklist_delete(linklist *head_ptr,int pos)
{
linklist *temp=head_ptr;
for(int i=pos;i>1;i--)
{
temp=temp->next;
}
linklist *temp2=temp->next;
temp->next=temp2->next;
free(temp2);
head_ptr->lens--;
}
int main(int argc, const char *argv[])
{
linklist *head_ptr=linklist_creat();
linklist_insert(head_ptr,1,"123");
linklist_insert(head_ptr,2,"qweq");
linklist_insert(head_ptr,3,"pppp");
linklist_show(head_ptr);
printf("-------------------\n");
linklist_delete(head_ptr,2);
linklist_show(head_ptr);
return 0;
}
#include<myhead.h>
typedef struct doubleLinkList
{
union
{
int lens;
char data[24];
};
struct doubleLinkList *next;
struct doubleLinkList *prior;
}doubleLinkList;
doubleLinkList *doubleLinkList_create()
{
doubleLinkList *head_ptr=(doubleLinkList*)malloc(sizeof(doubleLinkList));
head_ptr->lens=0;
head_ptr->next=NULL;
head_ptr->prior=NULL;
return head_ptr;
}
void doubleLinkList_show(doubleLinkList *head_ptr)
{
doubleLinkList *temp_ptr=head_ptr;
while(temp_ptr->next!=NULL)
{
temp_ptr=temp_ptr->next;
printf("%s\n",temp_ptr->data);
}
}
void doubleLinkList_insert(doubleLinkList *head_ptr,int pos,char *data)
{
doubleLinkList *temp_ptr=head_ptr;
for(int i=pos;i>1;i--)
{
temp_ptr=temp_ptr->next;
}
doubleLinkList *new_ptr=(doubleLinkList *)malloc(sizeof(doubleLinkList));
strcpy(new_ptr->data,data);
new_ptr->next=temp_ptr->next;
if(new_ptr->next!=NULL)
{
new_ptr->next->prior=new_ptr;
}
temp_ptr->next=new_ptr;
new_ptr->prior=temp_ptr;
head_ptr->lens++;
}
void doubleLinkList_delete(doubleLinkList *head_ptr,int pos)
{
doubleLinkList *temp_ptr=head_ptr;
for(int i=pos;i>1;i--)
{
temp_ptr=temp_ptr->next;
}
doubleLinkList *temp_ptr2=temp_ptr->next;
temp_ptr->next=temp_ptr2->next;
temp_ptr2->next->prior=temp_ptr;
free(temp_ptr2);
head_ptr->lens--;
}
int main(int argc, const char *argv[])
{
doubleLinkList *head_ptr=doubleLinkList_create();
doubleLinkList_insert(head_ptr,1,"123");
doubleLinkList_insert(head_ptr,2,"kkk");
doubleLinkList_insert(head_ptr,3,"444");
doubleLinkList_show(head_ptr);
printf("-------------------\n");
doubleLinkList_delete(head_ptr,2);
doubleLinkList_show(head_ptr);
return 0;
}