数据结构线性表是数据结构最基础的一章内容,也是数据结构最基础的一段,包括线性表的定义,线性表的初始化,线性表的插入,删除,合并。下面贴上代码

#include <stdio.h>
#include <malloc.h>
#include<iostream>
using namespace std;
//线性表的定义
typedef int ElemType;
typedef struct LNode{
	ElemType data;
	struct LNode *next;
}LNode,*LinkList;
//线性表的初始化
int InitList_L(LinkList &L)
{
	L = (LinkList)malloc(sizeof(LNode));
	L->next = NULL;
	return 1;
}
//线性表的插入
int ListInsert_L(LinkList &L,int i,ElemType e)
{
	LinkList p;
	p = L;
	int j = 0;
	while(p&&j<i-1)
	{
		p=p->next;
		++j;
	}
	if(!p||j>i-1)
		return 0;
	LinkList s = (LinkList)malloc(sizeof(LNode));
	s->data = e;
	s->next=p->next;
	p->next=s;
	return 1;
}
//清空线性表
void Delete_L(LinkList L)
{
	LinkList p = L->next;
	if(!p)
		cout << "this list is empty!";
	while(p)
	{
		cout << p->data;
		p = p->next;
	}
	cout << endl;
}
//合并线性表
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc)
{
	LinkList pa = La->next;
	LinkList pb = Lb->next;
	LinkList pc = Lc=La;
	while (pa&&pb)
	{
		if(pa->data<pb->data)
		{
			pc->next=pa;
			pc=pa;
			pa=pa->next;
		}
		else
		{
			pc->next=pb;
			pc=pb;
			pb=pb->next;
		}
	}
	pc->next=pa?pa:pb;
	free(Lb);
}

int main()
{
	LinkList La,Lb,Lc;
	InitList_L(La);
	InitList_L(Lb);
	InitList_L(Lc);
	ListInsert_L(La,1,2);
	ListInsert_L(La,2,3);
	ListInsert_L(La,3,5);
	Delete_L(La);
}