线性表 链式结构

题目

【问题描述】创建链式线性表进行输入插入 寻找 删除 与 输出功能
【输入形式】 1 输入元素个数 2 输入数据 3 插入位置与插入元素 4 输入删除要删除的元素
【输出形式】输出线性表
【样例输入】
        5 //输入元素个数
        1 2 3 4 5 //输入数据
        3 6 //插入位置与插入元素 如果插入位置不在范围内则不插入继续运行
        4 // 输入删除要删除的元素
【样例输出】
        1 2 6 3 5
#include
#include

typedef struct Node
{
	int data;
	struct Node*next;
 } Node,*LinkList;
 
void InitList(LinkList *L)
{
	*L=(LinkList)malloc(sizeof(Node));
	(*L)->next=NULL;
}

LinkList CreateList(LinkList *L,int a[],int n)
{
	Node*p=*L;
	for(int i=0;idata=a[i];
		q->next=p->next;
		p->next=q;
		p=q;
	}
	return *L;
}

bool InsertList(LinkList *L,int position,int elem,int n)
{
	Node*p=*L;
	if(position<1||position>n)
		return -1;
	Node*temp=(LinkList)malloc(sizeof(Node));
	for(int i=0;inext;
	}
	temp->data=elem;
	temp->next=p->next;
	p->next=temp;
	
	return 1;	 
}

void DelList(LinkList *L,int elem)
{
	Node*p=*L;
	while(p->next->data!=elem && p->next!=NULL)
	{	
		p=p->next;
	}
	Node *temp=(LinkList)malloc(sizeof(Node));
	//temp->next=p->next;
	temp=p->next;
	p->next=temp->next;
	free(temp);
	return;	
}
void PrintList(LinkList *L)
{
	Node*p=(*L)->next;
	while(p!=NULL)
	{
		printf("%d",p->data);
		p=p->next;
	}
	printf("\n");
}

int main()
{
	int n;
	int a[100];
	scanf("%d",&n);
	for(int i=0;i

你可能感兴趣的:(#数据结构习题,算法,数据结构,c#,链表)