数据结构线性表相关操作
数据结构线性表是数据结构最基础的一章内容,也是数据结构最基础的一段,包括线性表的定义,线性表的初始化,线性表的插入,删除,合并。下面贴上代码 #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); }