#include "stdafx.h"
#include <iostream>
using namespace std;
typedef struct Node
{
int nVal;
Node *pNext;
}Link,*pLink;
Link * CreateLink(int arr[], int n)
{
if (0 == n)
{
return NULL;
}
Link *pNew = new Link;
pNew->nVal = 0;
pNew->pNext = NULL;
Link *pRet = pNew;
for (int i=0; i<n; i++)
{
Node *p = new Node;
p->nVal = arr[i];
p->pNext = NULL;
pNew->pNext = p;
pNew = pNew->pNext;
}
return pRet->pNext;
}
void PrintLink(Link *pNew)
{
if (pNew == NULL)
{
cout<<"链表为空!"<<endl;
return;
}
Link *p = pNew;
while (p != NULL)
{
cout<<p->nVal;
p = p->pNext;
if (p != NULL)
{
cout<<"->";
}
else
{
cout<<endl;
}
}
}
void FreeLink(Link *&pNew)
{
Node *p = NULL;
while (pNew)
{
p = pNew->pNext;
delete pNew;
pNew = p;
}
pNew = NULL;
}
void DeleteValFromLink(Link *&pNew,int nVal)
{
Node head;
head.nVal = -1;
head.pNext = pNew;
Node *pHead = &head;
Node *pCur = NULL;
while (pHead->pNext != NULL)
{
pCur = pHead->pNext;
if (pHead->pNext->nVal == nVal)
{
pHead->pNext = pHead->pNext->pNext;
delete pCur;
pCur = NULL;
}
else
{
pHead = pHead->pNext;
}
}
pNew = head.pNext;
}
void ModifyValFromLink(Link *&pNew,int nPos,int nVal)
{
if (pNew == NULL)
{
return;
}
Node head;
head.nVal = -1;
head.pNext = pNew;
int i = 0;
Node *pHead = &head;
while (pHead->pNext != NULL)
{
if (nPos == ++i)
{
pHead->pNext->nVal = nVal;
break;
}
pHead = pHead->pNext;
}
pNew = head.pNext;
}
void InsertNodeToLink(Link *&pNew, int nPos,int nVal)
{
Node *insertNode = new Node;
insertNode->nVal = nVal;
insertNode->pNext = NULL;
Node head;
head.nVal = -1;
head.pNext = pNew;
int i = 0;
Node *pHead = &head;
while (pHead->pNext != NULL)
{
if (nPos == ++i)
{
insertNode->pNext = pHead->pNext;
pHead->pNext = insertNode;
break;
}
pHead = pHead->pNext;
}
pNew = head.pNext;
}
void main()
{
int arr[] = {1,2,2,1,4,5};
Link *pNew = CreateLink(arr,sizeof(arr)/sizeof(arr[0]));
PrintLink(pNew);
// DeleteValFromLink(pNew,2);
// DeleteValFromLink(pNew,1);
// PrintLink(pNew);
//InsertNodeToLink(pNew,4,3);
//PrintLink(pNew);
//ModifyValFromLink(pNew,5,10);
//PrintLink(pNew);
}
【C++】链表学习
最新推荐文章于 2022-07-26 21:57:51 发布