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

#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);
}