// List.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <vld.h>
using namespace std;
typedef struct _List
{
int nData;
struct _List*next;
};
void insertList(_List* pList, int nData)
{
while (pList->next){
pList = pList->next;
}
_List *p = new _List;
p->nData = nData;
p->next = NULL;
pList->next = p;
}
void output(_List *pList)
{
while (pList){
cout<<pList->nData<<endl;
pList = pList->next;
}
cout<<"//////////////////////////"<<endl;
}
void DeleteList(_List *pList)
{
while (pList){
_List *p = pList->next;
delete pList;
pList = p;
}
}
void DeleteNode(_List *pList, int nPos)
{
int i = 0;
while (pList && i++ < nPos){
if (i == nPos){
_List *p = pList->next->next;
delete pList->next;
pList->next = p;
break;
}
pList = pList->next;
}
}
void SortList(_List *pList)
{
while (pList){
_List *p = pList->next;
while (p){
if (pList->nData < p->nData){
int nTemp = pList->nData;
pList->nData = p->nData;
p->nData = nTemp;
}
p = p->next;
}
pList = pList->next;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
_List *pList = new _List;
pList->nData = 0;
pList->next = NULL;
insertList(pList, 1);
insertList(pList, 2);
insertList(pList, 3);
insertList(pList, 4);
insertList(pList, 5);
insertList(pList, 6);
insertList(pList, 7);
insertList(pList, 8);
insertList(pList, 9);
insertList(pList, 10);
output(pList);
SortList(pList);
output(pList);
DeleteNode(pList, 3);
output(pList);
DeleteList(pList);
return 0;
}