c语言链表操作

 

#include"stdio.h"

#include"stdlib.h"



typedef struct Node

{

	int data;

	struct Node *next;

}list,*ptr_list;



typedef struct List

{

	int len;

	ptr_list head;

}List; 



bool delete_node(List *L,int pos)

{

	if(pos==0)

	{return 0;}

	ptr_list p,q;

	int i;

	p=L->head;

	for(i=0;i<pos;i++)

	{

		q=p;

		p=p->next;

    }

	q->next=p->next;

	L->len--;

	return 1;

}





bool insert_node(List* L,int data,int pos)

{

	ptr_list current=(list*)malloc(sizeof(list));

	current->data=data;

	if(pos==0)

	{return 0;}

	ptr_list p,q;

	int i;

	p=L->head;

	for(i=0;i<pos;i++)

	{

		q=p;

		p=p->next;

    }

    q->next=current;

    current->next=p;

    return 1;

}



bool update(List* L,int data,int pos)

{

	

	if(pos==0)

	{return 0;}

	ptr_list p;

	int i;

	p=L->head;

	for(i=0;i<pos;i++)

	{

        p=p->next;

    }

    p->data=data;

    return 1;

}



void inti(List *L,int len)

{ 

     int i;

	 L->head=(list *)malloc(sizeof(list));

	 L->len=len;

	 ptr_list p=L->head;

	 for(i=0;i<len;i++)

	 {

		 ptr_list temp=(list *)malloc(sizeof(list));

		 p->next=temp;

		 temp->data=i;

		 p=temp;

	 }



}

void print(List L)

{

	int len=L.len;

	int i;

	ptr_list p=L.head;

    p=p->next;

	for(i=0;i<len;i++)

	{

		printf("%d ",p->data);

		p=p->next;

	}

	printf("\n");

}





void main()

{



	List L;

	inti(&L,10);

	print(L);

	delete_node(&L,2);

	print(L);

	insert_node(&L,5555,2);

	print(L);

	update(&L,4444,3);

	print(L);

				

}


教学版 链表操作 呵呵。。闲来之作 欢迎板砖,水军。

 

你可能感兴趣的:(C语言)