void VisitExpr( const SymbolicExpr& v) { switch (v.GetOpType()) { case SYMOP_MULTIPLY: case SYMOP_PLUS: Default0(); break; case SYMOP_MIN: case SYMOP_MAX: Default1(v1,v2); if (result == REL_UNKNOWN) result = (index == 1)? SelectCompare(v1,v,GetFunc())(v2) : Reverse(SelectCompare(v2,v,GetFunc())(v1)); break; default: assert(false); } }
// ==================== Test Code ==================== ListNode* Test(char* testName, ListNode* pHead, unsigned int k) { if(testName != NULL) printf("====%s begins: ====\n", testName); printf("The original list is: "); PrintList(pHead); printf("The reversed list is: "); ListNode* pReversedHead = Reverse(pHead, k); PrintList(pReversedHead); printf("\n\n"); return pReversedHead; }
int main(int argc, const char *argv[]) { char array[100] = "I am a student"; char *pbegin, *pend; char *pdate; pbegin = pend = array; Reverse(pbegin, pend); printf("Now, the string is :\n"); printf("%s\n", array); pdate = array; Reverse_sentense(pdate); printf("%s\n", array); return 0; }
int main() { AreEqual("dcba", Reverse("abcd")); AreEqual("cba", Reverse("abc")); AreEqual("aA", Reverse("Aa")); AreEqual("airaM", Reverse("Maria")); AreEqual("xelA", Reverse("Alex")); AreEqual("", Reverse("")); return 0; }
int main() { struct Node* head; // local variable int n, i, x; printf("Enter the number of elements in the list> "); scanf("%d", &n); for(i = 0; i < n; i++) { printf("\nEnter element %d> ", i + 1); scanf("%d", &x); head = Insert(head, x); } Print(head); head = Reverse(head); Print(head); return 0; }
int main(){ int i; Node * sFirst=NULL; Node * sHead=sFirst; for (i = 0; i < 9; ++i) { sFirst=Insert(i,sFirst); } printf("Before Reversing;\n"); Myprint(sFirst); printf("After Reversing;\n"); sFirst=Reverse(sFirst,NULL); Myprint(sFirst); }
void ReverseSentence (char* str) { if (NULL == str || *str == 0) { return; } char* pBegin = str; char* pEnd = str; while (*pBegin != '\0') { if (*pBegin == ' ') { ++pBegin, ++pEnd; } else if (*pEnd == ' ' || *pEnd == '\0') { Reverse(pBegin, pEnd - 1); pBegin = pEnd; } else { ++pEnd; } } }
int main() { List L = Create(); ElementType e; e = 3; InsertAtHead(e, L); e = 2; InsertAtHead(e, L); e = 1; InsertAtHead(e, L); PrintList(L); L = Reverse(L); PrintList(L); return 0; }
void itoa(int n,char s[],int b) { void Reverse(char s[]); int i,sign; sign=n; i=0; do { s[i++]=abs(n%10)+'0'; } while((n/=10)!=0); if(sign<0) s[i++]='-'; while(i<b) s[i++]=' '; s[i]='\0'; Reverse(s); }
void RelayForwarder::IncomingData(const Request ¬ification) { QVariantHash msg = notification.GetData().toHash(); Id destination = Id(msg.value("to").toString()); if(destination == Id::Zero()) { qWarning() << "Received a forwarded message without a destination."; return; } QStringList been = msg.value("been").toStringList(); if(destination == _local_id) { if(been.size() == 0) { qWarning() << "Received a forwarded message without any history."; return; } Id source = Id(been[0]); if(source == Id::Zero()) { qWarning() << "Received a forwarded message without a valid source."; } QSharedPointer<ForwardingSender> *psender = _cache.take(source); if(!psender || (*psender)->GetReverse().isEmpty()) { if(psender) { delete psender; } psender = new QSharedPointer<ForwardingSender>( new ForwardingSender(GetSharedPointer(), _local_id, source, been)); } QSharedPointer<ForwardingSender> sender(*psender); _cache.insert(source, psender); _rpc->HandleData(sender, msg.value("data").toByteArray()); return; } QStringList reverse = msg.value("reverse").toStringList(); QByteArray data = msg.value("data").toByteArray(); if(reverse.isEmpty() || !Reverse(destination, data, been, reverse)) { Forward(destination, data, been); } }
void FFT1DOnce(long direction, long M, long N, double *u, double *x) { long j; long k; long q; long L; long r; long Lstar; double *u1; double *x1; double *x2; double omega_r; double omega_c; double tau_r; double tau_c; double x_r; double x_c; Reverse(N, M, x); for (q=1; q<=M; q++) { L = 1<<q; r = N/L; Lstar = L/2; u1 = &u[2*(Lstar-1)]; for (k=0; k<r; k++) { x1 = &x[2*(k*L)]; x2 = &x[2*(k*L+Lstar)]; for (j=0; j<Lstar; j++) { omega_r = u1[2*j]; omega_c = direction*u1[2*j+1]; x_r = x2[2*j]; x_c = x2[2*j+1]; tau_r = omega_r*x_r - omega_c*x_c; tau_c = omega_r*x_c + omega_c*x_r; x_r = x1[2*j]; x_c = x1[2*j+1]; x2[2*j] = x_r - tau_r; x2[2*j+1] = x_c - tau_c; x1[2*j] = x_r + tau_r; x1[2*j+1] = x_c + tau_c; } } } }
int main() { int i,n; char s[80],key[12],encrypt[80]; //输入串,密钥,加密后的串 scanf("%s",key); getchar(); //吃掉输入密钥后的那个回车 GeneAlphabet(); //产生字母表 Reverse(key); //将密钥key反转 GetCharMap(key); //得到字母表的加密字符的对应表 while(1) { gets(s); //得到每行要加密的串 if(strcmp(s,"#") == 0) break; //如果输入#号则终止程序 strcpy(encrypt,""); //将加密后的串先清空 Encrypt(s,key,encrypt); //加密 puts(encrypt); //输出 } return 0; }
void Reverse (Stack *L) { assert(L != NULL); //precondition for empty list StackNode *head, *remainder; Stack tempRest; //temporary list for recursion function head = L->first; remainder = head->next; //rest of list to be reversed if (remainder == NULL) return; tempRest.first = remainder; Reverse(&tempRest); //calls itself with remainder of list head->next->next = head; head->next = NULL; L->first = tempRest.first; //attaches head }
int main() { // freopen("1.in","r",stdin); scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",a+i); a[0]=a[n+1]=INF; root=build(0,n+2); root->p=null; scanf("%d",&m); while(m--) { int x,y,k; char s[20]; scanf("%s",s); switch(s[0]) { case 'A':scanf("%d%d%d",&x,&y,&k); Add(x,y,k); break; case 'I':scanf("%d%d",&x,&k); Insert(x,k); break; case 'D':scanf("%d",&x); Delete(x); break; case 'M':scanf("%d%d",&x,&y); printf("%d\n",Min(x,y)); break; case 'R':if(s[3]=='E') { scanf("%d%d",&x,&y); Reverse(x,y); } else { scanf("%d%d%d",&x,&y,&k); Revolve(x,y,k); } } } return 0; }
struct ListNode* swapPairs(struct ListNode* head) { if(!head || head->next == NULL) { return head; } struct ListNode* rest; struct ListNode* last; rest = head->next->next; last = Reverse(&head); last->next = swapPairs(rest); return head; }
bool Permutations::NextPermutation() { if (n < 2) return false; qint8 pos = /*pos =*/ n - 2; while (pos >= 0) { if (st[pos] < n - 1 - pos) { Reverse(v, pos + 1); for (quint8 i = pos + 1; i < n; ) st[i++] = 0; st[pos]++; Swap(v[pos], v[pos + st[pos]]); return true; } pos--; } return false; }
struct node* Reverse (struct node *current, struct node *parent){ if (current == NULL) return NULL; else if (current->NEXT == NULL){ root = current; current->NEXT = parent; if (parent != NULL) return parent; else return root; } else { current = Reverse (current->NEXT, current); current->NEXT = parent; if (parent == NULL) return root; else return (parent); } }
int main() { Node *head = NULL; head = add_node(head, 1); head = add_node(head, 2); head = add_node(head, 3); head = add_node(head, 4); head = add_node(head, 5); head = add_node(head, 6); head = add_node(head, 7); print_list(head); Node *reversed_list = Reverse(head); print_list(reversed_list); return 0; }
void BuildAstTreeDepGraph :: TranslateCtrlDeps() { const GraphAccessInterface* g = graph->Access(); for (StmtStackType::Iterator p(stmtNodes); !p.ReachEnd(); ++p) { StmtNodeInfo &info = *p; GraphAccessInterface::Node *n1 = info.node; for (GraphAccessInterface::EdgeIterator p1 = g->GetNodeEdgeIterator(n1, GraphAccess::EdgeIn); !p1.ReachEnd(); ++p1) { GraphAccessInterface::Edge *e1 = p1.Current(); DepInfoConstIterator depIter1 = graph->GetDepInfoIteratorImpl(e1, DEPTYPE_CTRL); if (depIter1.ReachEnd()) continue; GraphAccessInterface::Node *ctrl = g->GetEdgeEndPoint(e1, GraphAccess::EdgeOut); DepInfo cd = depIter1.Current(); DepInfo cd1 = Reverse( cd ); GraphAccessInterface::EdgeIterator p2 = g->GetNodeEdgeIterator(ctrl,GraphAccess::EdgeOut); for ( ; !p2.ReachEnd(); ++p2) { GraphAccessInterface::Edge *e2 = p2.Current(); GraphAccessInterface::Node *n2 = g->GetEdgeEndPoint(e2, GraphAccess::EdgeIn); for (DepInfoConstIterator depIter2 = graph->GetDepInfoIteratorImpl(e2, DEPTYPE_DATA); ! depIter2.ReachEnd(); depIter2++) { DepInfo tmpd = cd1 * depIter2.Current(); graph->CreateEdgeImpl(n1,n2,tmpd); } } for (p2 = g->GetNodeEdgeIterator(ctrl, GraphAccess::EdgeIn); !p2.ReachEnd(); ++p2) { GraphAccessInterface::Edge *e2 = p2.Current(); GraphAccessInterface::Node *n2 = g->GetEdgeEndPoint(e2, GraphAccess::EdgeOut); for (DepInfoConstIterator depIter2 = graph->GetDepInfoIteratorImpl(e2, DEPTYPE_DATA); ! depIter2.ReachEnd(); depIter2++) { DepInfo tmpd = depIter2.Current() * cd; graph->CreateEdgeImpl(n2,n1, tmpd); } } } } }
int main() { while(scanf("%d%d",&n,&q) == 2) { Init(); char op[20]; int x,y,z; while(q--) { scanf("%s",op); if(strcmp(op,"INSERT") == 0) { scanf("%d%d",&x,&y); Insert(x,y); } else if(strcmp(op,"DELETE") == 0) { scanf("%d%d",&x,&y); Delete(x,y); } else if(strcmp(op,"MAKE-SAME") == 0) { scanf("%d%d%d",&x,&y,&z); Make_Same(x,y,z); } else if(strcmp(op,"REVERSE") == 0) { scanf("%d%d",&x,&y); Reverse(x,y); } else if(strcmp(op,"GET-SUM") == 0) { scanf("%d%d",&x,&y); printf("%d\n",Get_Sum(x,y)); } else if(strcmp(op,"MAX-SUM") == 0) printf("%d\n",Get_MaxSum(1,size[root]-2)); } } return 0; }
ListNode *reverseBetween(ListNode *head, int m, int n) { if (m == n) return head; ListNode dummy(0); dummy.next = head; ListNode * first = &dummy; for (int i = 1; i < m; i++) first = first->next; ListNode * last = first; for (int i = 1; i <= n - m + 2; i++) { last = last->next; if (last == NULL) break; } ListNode * newSecond = first->next; ListNode *newFirst = Reverse(first->next, last); first->next = newFirst; newSecond->next = last; return dummy.next; }
virtual void VisitExpr( const SymbolicExpr& e2) { SymOpType t1 = e1.GetOpType(), t2 = e2.GetOpType(); unsigned c1 = e1.NumOfOpds(), c2 = e2.NumOfOpds(); if (t2 == SYMOP_MULTIPLY || t2 == SYMOP_PLUS ) Default0(); else if (t1 == t2) { Matrix<CompareRel> rel(c1,c2,0); ExprTermCompare(e1,e2,rel,GetFunc()); MatchCompare(rel,c2); } else if (t1 == SYMOP_MIN && t2 == SYMOP_MAX) { size_t le = 0, lt = 0, ge = 0, gt = 0; SymbolicExpr::OpdIterator p2 = e2.GetOpdIterator(); for ( ; !p2.ReachEnd(); ++p2) { CompareRel r = CompareValHelp(v1, e2.Term2Val(p2.Current()),GetFunc()); if (CountLE(r)) ++le; if (CountGE(r)) ++ge; if (CountLT(r)) ++lt; if (CountGT(r)) ++gt; } if (gt == e2.NumOfOpds()) result = REL_GT; else if (lt > 0) result = REL_LT; else if (ge == e2.NumOfOpds()) result = REL_GE; else if (le > 0) result = REL_LE; } else if (t1 == SYMOP_MAX && t2 == SYMOP_MIN) result = Reverse( SelectCompare(v2, e2, GetFunc())(v1) ); else assert(false); }
int main() { //Declares a char array Buffer1 and initializes to "This is the first buffer" char Buffer1[] = {'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 't', 'h', 'e', ' ', 'f', 'i', 'r', 's', 't', ' ', 'b', 'u', 'f', 'f', 'e', 'r', '\0'}; //Declares a char array Buffer2 and initializes to "This is the second buffer" char Buffer2[] = "This is the second buffer"; //Declares a char array Buffer3 char Buffer3[80]; char Parse[] = "hello world, how are you today."; char* pBuffer; int a, b = 0; pBuffer = Buffer3; scanf("%[^\n]s", Buffer3); printf("\nBuffer 1: %s\nBuffer 2: %s\nBuffer 3: ", Buffer1, Buffer2); //Prints contents of Buffer3 via while loop while (*pBuffer != '\0') { printf("%c", *pBuffer); pBuffer++; } printf("\n"); pBuffer = Buffer3; a = (int)strlen(pBuffer) - 1; Reverse(pBuffer); RecursiveReverse(pBuffer, a, b); ParseSentence(Parse); return 0; }
int wc_Des3_SetKey(Des3* des, const byte* key, const byte* iv, int dir) { int ret; #ifdef HAVE_CAVIUM if (des->magic == WOLFSSL_3DES_CAVIUM_MAGIC) return wc_Des3_CaviumSetKey(des, key, iv); #endif ret = DesSetKey(key + (dir == DES_ENCRYPTION ? 0:16), dir, des->key[0]); if (ret != 0) return ret; ret = DesSetKey(key + 8, Reverse(dir), des->key[1]); if (ret != 0) return ret; ret = DesSetKey(key + (dir == DES_DECRYPTION ? 0:16), dir, des->key[2]); if (ret != 0) return ret; return wc_Des3_SetIV(des, iv); }
// duplicate for right now void ac::ReverseFrameBlend(cv::Mat &frame) { cv::Mat frame_copy = frame.clone(); Reverse(frame_copy); MedianBlend(frame_copy); int index = 0; for(int z = 0; z < frame.rows; ++z) { for(int i = 0; i < frame.cols; ++i) { cv::Vec3b &pixel = frame.at<cv::Vec3b>(z, i); cv::Vec3b pix = frame_copy.at<cv::Vec3b>(z, i); switch(index) { case 0: break; case 1: pixel = pix; break; } ++index; if(index > 1) index = 0; } } AddInvert(frame); }
int _tmain(int argc, _TCHAR* argv[]) { LinkNode **pHead; LinkNode *head = new LinkNode; LinkNode *tail = head; head->value = 0; head->next = NULL; pHead = &head; for (int i=1;i<10;i++) { LinkNode *node = new LinkNode; node->value = i; node->next = NULL; tail->next = node; tail = node; } print(pHead); LinkNode *node = *pHead; srand((unsigned int)time(NULL)); int index = rand()%10; std::cout << "删除第"<<index<<"个节点" <<std::endl; for (int i=0;i<index;i++) { node = node->next; } DeleteNode(pHead,node); print(pHead); std::cout << "Reverse LinkList" <<std::endl; //(*pHead)->next=NULL; head = Reverse(*pHead); pHead = &head; print(pHead); return 0; }
void CBezierPatch::BuildBezierPoints_Sub(int nStartOfLongest, bool bFirst) { int a[3], b[3]; switch (nStartOfLongest) { case 0: { a[0] = a[1] = a[2] = 3; b[0] = b[1] = b[2] = 0; break; } case 1: { a[0] = a[1] = a[2] = 0; b[0] = b[1] = b[2] = 3; break; } case 2: { a[0] = a[1] = a[2] = 0; b[0] = b[1] = b[2] = 0; break; } } int pos1 = (2 + nStartOfLongest)%3; CUtils::GetNextPoint(a[1], b[1], nStartOfLongest, -3); CUtils::GetNextPoint(a[2], b[2], pos1, 3); CBezierPatch& ParentPatch = *m_pParent_SubTriangle->GetParentSubTriangle()->GetBezierPatch(); //003 Point(a[2], b[2]) = ParentPatch.GetPoint(a[2],b[2]); // qDebug() << a[2] << b[2] << (bFirst?"Left":"Right"); std::vector<int> c; std::vector<int> d; CVector3DF t[4]; //102 &012 c.assign(2, a[2]); d.assign(2, b[2]); CUtils::GetNextPoint(c[0], d[0], (2 + nStartOfLongest)%3, -1); CUtils::GetNextPoint(c[1], d[1], (1 + nStartOfLongest)%3, 1); if (!bFirst) { Reverse(c, d); } // qDebug() << c[0] << d[0] << "," << c[1] << d[1]; t[0] = ParentPatch.GetPoint(c[0],d[0]); t[1] = ParentPatch.GetPoint(c[1],d[1]); Point(c[0], d[0]) = t[0]; Point(c[1], d[1]) = (t[0] + t[1]) * 0.5f; //201 & 111 & 021 c.clear(); d.clear(); c.assign(3, a[2]); d.assign(3, b[2]); CUtils::GetNextPoint(c[0], d[0], (2 + nStartOfLongest)%3, -2); c[1] = 1; d[1] = 1; CUtils::GetNextPoint(c[2], d[2], (1 + nStartOfLongest)%3, 2); if (!bFirst) { Reverse(c, d); } // qDebug() << c[0] << d[0] << "," << c[1] << d[1] << "," << c[2] << d[2]; t[0] = ParentPatch.GetPoint(c[0],d[0]); t[1] = ParentPatch.GetPoint(c[1],d[1]); t[2] = ParentPatch.GetPoint(c[2],d[2]); Point(c[0], d[0]) = t[0]; t[0] = (t[0]+t[1]) * 0.5f; t[1] = (t[1]+t[2]) * 0.5f; Point(c[1], d[1]) = t[0]; t[0] = (t[0]+t[1]) * 0.5f; Point(c[2], d[2]) = t[0]; //030 & 210 & 120 & 030 c.clear(); d.clear(); c.assign(4, a[0]); d.assign(4, b[0]); CUtils::GetNextPoint(c[1], d[1], nStartOfLongest, -1); CUtils::GetNextPoint(c[2], d[2], nStartOfLongest, -2); c[3] = a[1]; d[3]= b[1]; if (!bFirst) { Reverse(c, d); } // qDebug() << c[0] << d[0] << "," << c[1] << d[1] << "," << c[2] << d[2] << "," << c[3] << d[3]; t[0] = ParentPatch.GetPoint(c[0],d[0]); t[1] = ParentPatch.GetPoint(c[1],d[1]); t[2] = ParentPatch.GetPoint(c[2],d[2]); t[3] = ParentPatch.GetPoint(c[3],d[3]); Point(c[0], d[0]) = t[0]; t[0] = (t[0]+t[1]) * 0.5f; t[1] = (t[1]+t[2]) * 0.5f; t[2] = (t[2] + ParentPatch.GetPoint(c[3],d[3])) * 0.5f; Point(c[1], d[1]) = t[0]; t[0] = (t[0]+t[1]) * 0.5f; t[1] = (t[1]+t[2]) * 0.5f; Point(c[2], d[2]) = t[0]; t[0] = (t[0]+t[1]) * 0.5f; Point(c[3], d[3]) = t[0]; BuildBezierPoints_Internal(); }
void CRay::Flip() { m_oPos += m_oDir; Reverse(); }
void fun3(char* str, int num, int length) { Reverse(str, str+num-1); Reverse(str+num, str+length-1); Reverse(str, str+length-1); }
/* * Load texture from BMP file */ unsigned int Texture::LoadTexBMP(const char* file) { unsigned int texture; // Texture name FILE* f; // File pointer unsigned short magic; // Image magic unsigned int dx,dy,size; // Image dimensions unsigned short nbp,bpp; // Planes and bits per pixel unsigned char* image; // Image data unsigned int k; // Counter // Open file f = fopen(file,"rb"); if (!f) Fatal("Cannot open file %s\n",file); // Check image magic if (fread(&magic,2,1,f)!=1) Fatal("Cannot read magic from %s\n",file); if (magic!=0x4D42 && magic!=0x424D) Fatal("Image magic not BMP in %s\n",file); // Seek to and read header if (fseek(f,16,SEEK_CUR) || fread(&dx ,4,1,f)!=1 || fread(&dy ,4,1,f)!=1 || fread(&nbp,2,1,f)!=1 || fread(&bpp,2,1,f)!=1 || fread(&k,4,1,f)!=1) Fatal("Cannot read header from %s\n",file); // Reverse bytes on big endian hardware (detected by backwards magic) if (magic==0x424D) { Reverse(&dx,4); Reverse(&dy,4); Reverse(&nbp,2); Reverse(&bpp,2); Reverse(&k,4); } // Check image parameters if (dx<1 || dx>65536) Fatal("%s image width out of range: %d\n",file,dx); if (dy<1 || dy>65536) Fatal("%s image height out of range: %d\n",file,dy); if (nbp!=1) Fatal("%s bit planes is not 1: %d\n",file,nbp); if (bpp!=24) Fatal("%s bits per pixel is not 24: %d\n",file,bpp); if (k!=0) Fatal("%s compressed files not supported\n",file); #ifndef GL_VERSION_2_0 // OpenGL 2.0 lifts the restriction that texture size must be a power of two /* for (k=1;k<dx;k*=2); if (k!=dx) Fatal("%s image width not a power of two: %d\n",file,dx); for (k=1;k<dy;k*=2); if (k!=dy) Fatal("%s image height not a power of two: %d\n",file,dy);*/ #endif // Allocate image memory size = 3*dx*dy; image = (unsigned char*) malloc(size); if (!image) Fatal("Cannot allocate %d bytes of memory for image %s\n",size,file); // Seek to and read image if (fseek(f,20,SEEK_CUR) || fread(image,size,1,f)!=1) Fatal("Error reading data from image %s\n",file); fclose(f); // Reverse colors (BGR -> RGB) for (k=0;k<size;k+=3) { unsigned char temp = image[k]; image[k] = image[k+2]; image[k+2] = temp; } // Sanity check ErrCheck("LoadTexBMP"); // Generate 2D texture glGenTextures(1,&texture); glBindTexture(GL_TEXTURE_2D,texture); // Copy image glTexImage2D(GL_TEXTURE_2D,0,3,dx,dy,0,GL_RGB,GL_UNSIGNED_BYTE,image); if (glGetError()) Fatal("Error in glTexImage2D %s %dx%d\n",file,dx,dy); // Scale linearly when image size doesn't match glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // Free image memory free(image); // Return texture name return texture; }