// LinkedList.cpp : Defines the entry point for the console application. // #include " stdafx.h " #include < iostream.h > typedef struct LNode ... { int data; struct LNode *next;} LNode, * LinkList; void GetElem_L(LinkList L, int i, int & e); void ListInsert_L(LinkList L, int i, int e); void ListDelete_L(LinkList L, int i, int & e); void CreateList_L(LinkList L, int n); void MergeList_L(LinkList La, LinkList Lb, LinkList & Lc); void Print_L(LinkList L); int main( int argc, char * argv[]) ... { LinkList L = new LNode(); LinkList B = new LNode(); B->next = L->next = NULL; for(int i = 0; i < 50; i++) ...{ ListInsert_L(L, i+1, i); ListInsert_L(B, i+1, 49 + i); } cout << "LinkList L Is:" << endl; Print_L(L); cout << "LinkList B Is:" << endl; Print_L(B); LinkList Lc = NULL; MergeList_L(L, B, Lc); cout << "LinkList Lc Is:" << endl; Print_L(Lc); return 0;} void Print_L(LinkList L) ... { LNode* p = L->next; while(p) ...{ cout << p->data << " "; p = p->next; } cout << endl;} void GetElem_L(LinkList L, int i, int & e) ... { LNode * p = L->next; int j = 1; while(p && j < i) ...{ p = p->next; ++j; } if(!p || j > i) throw "Access element error."; e = p->data;} void ListInsert_L(LinkList L, int i, int e) ... { LNode* p = L; int j = 0; while(p && j < i - 1) ...{ p = p->next; ++j; } if(!p || j > i - 1) throw "Insert element error."; LNode* s = new LNode(); s->data = e; s->next = p->next; p->next = s;} void ListDelete_L(LinkList L, int i, int & e) ... { LNode* p = L; int j = 0; while(p ->next && j < i - 1) ...{ p = p->next; ++j; } if(!(p->next) || j > i -1) throw "Delete element error."; LNode* q = p->next; p->next = q->next; e = q->data; delete q;} void CreateList_L(LinkList L, int val) ... { LNode* p = new LNode(); p->data = val; p->next = L->next; L->next = p; } void MergeList_L(LinkList La, LinkList Lb, LinkList & Lc) ... { LNode* pa = La->next; LNode* pb = Lb->next; LNode* 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; delete Lb;}