multiAlign.h
上传用户:szpanda
上传日期:2016-03-09
资源大小:9k
文件大小:1k
源码类别:

DNA

开发平台:

C/C++

  1. /* File: multiAlign.h                      */ 
  2. /* Author:Qichan Ma, Student No.:250494898 */
  3. #ifndef MULTIALIGN_H
  4. #define MULTIALIGN_H
  5. typedef struct {
  6. int u; /* one vertex of an edge */
  7. int v; /* the other vertex of an edge */
  8. int cost;   /* the cost of an edge */
  9. } Edge;
  10. Edge *e;       /* the edges array  */
  11. int *parent;   /* the parent array */
  12. int *rank;     /* the rank array   */
  13. int *heap;     /* the heap used to sort edges and get the minimal cost edge */
  14. int hsize;     /* the size of the heap */
  15. /* creat a new set whose only member is x */
  16. void Make_set(int x);
  17. /* unite the dynamic sets that contain x and y into one set */        
  18. void Union(int x, int y);
  19. /* subroutine of Union */       
  20. void Link(int x, int y);
  21. /* returns a pointer to the representative of the set containing x */         
  22. int Find_set(int x);
  23.  /* bulid the heap */             
  24. void BuildMaxHeap(int n);
  25. /* adjust down the element in the heap */       
  26. void AdjustDown (int r, int n);
  27. /* delete the minimal element from the heap */  
  28. int DeleteMax();                 
  29. /* do the multiple sequence alignment using Kruskal's maximum spanning tree algorithm */
  30. void MST_Kruskal(); 
  31. /* compute the pairwise alignment score */            
  32. int AlignScore(char *x, char *y);
  33. /* output the multiple alignment & SP score */
  34. void printMultiAlign();
  35. #endif