boreal
BAN USERvoid PrintCompList(int a[], int len)
{
int r = 0, start = 0;
while (r < (len-1)) {
while (a[r+1] == (a[r] + 1)) {
if (start == 0) {
cout << a[r] << "-";
start = 1;
}
++r;
};
cout << a[r++] << ",";
start = 0;
};
//cout << len << ":" << r << endl;
if(r < len) { cout << a[r] << endl; }
}
int main()
{
int arr[] = { 1, 2, 3, 10, 25, 26, 30, 31, 32, 33, 34, 76, 84, 85};
size_t len = sizeof(arr)/sizeof(int);
PrintCompList(arr, len);
return(0);
}
// pStr = "3456"
int my_atoi(char *pStr)
{
int val = 0;
UINT len = strlen(pStr);
UINT index = 0;
UCHAR curr_char = 0;
for (int i = len-1; i >=0; i--) {
if (pStr[i] == '-') { continue; }
printf("i is %d\n", i);
curr_char = pStr[i];
int curr_val = ((int) curr_char) - '0';
val += (curr_val * pow(10, index++));
}
if (pStr[0] == '-') { val = 0 - val; }
return(val);
}
// A->B->C->D->E->F
// B->A->D->C->F->E
void SwapPairs(Node **pHead)
{
Node *pPrev = NULL, *pTemp = NULL, *pNext = NULL;
Node *pCurrent = *pHead;
while (pCurrent) {
// un-even number of elements case
if (pCurrent->pNext == NULL) {
pPrev->pNext = pCurrent;
break;
}
// swap the current and the next
pNext = swap(&pCurrent);
if (pPrev) {
pPrev->pNext = pCurrent;
}
else {
// Update the head
*pHead = pCurrent;
}
pPrev = pCurrent->pNext;
// Set the pointer for the last element
if (pNext == NULL) { pCurrent->pNext->pNext = NULL; }
// Move ptr to the next element
pCurrent = pNext;
}
}
Node *swap(Node **pCurrent)
{
if ((!pCurrent) || (!(*pCurrent))) { return(NULL); }
Node *pTemp = (*pCurrent)->pNext;
Node *pRet = NULL;
if (pTemp) { pRet = pTemp->pNext; }
pTemp->pNext = *pCurrent;
*pCurrent = pTemp;
return(pRet);
}
- boreal April 22, 2015
RepKinsleyJames, Network Engineer at Accenture
I graduated from College with a master’s degree in arthrogryposis. After graduation I am working as a manager in ...
- boreal September 21, 2015