ࡱ> q`  bjbjqPqP |::kT T T T T T T h &&&8&,(h J<+<+<+<+<+LLL$hT (QE L(Q(QT T <+<+OZZZ(Q,&T <+T <+Z(QZZ6T T %<+0+ `o?&Tw-Ut0J<8%%T Lr NZOOCLLLdLLLJ(Q(Q(Q(Qh h h   h h h h h h T T T T T T   INDEX Array Implementation Of Stack Application Of Stack Conversion Of Infix To Postfix Implementation Of Linear Queue Using Arrays Array Implementation Of Circular Queue Linked List Implementation Of Stack Singly linked list Linked list implementation Doubly linked list Linked list implementation Polynomial Manipulation Tree Traversals Expression Tree Priority Queue Using Heap Hashing Technique Dijkstras Algorithm Back tracking algorithm knap sack problem Ex. no.: 1 Date : ARRAY IMPLEMENTATION OF STACK Aim To write a C-program to implement stack using array data structure. And perform the following stack operations POP PUSH PEEP Algorithm STEP 1:Start STEP 2:Initialize stack, will=1,i, num STEP 3:Add element in stack PUSH(S,TOP,X) 3.a. [Check overflow condition] If(TOP>=N) then Write(Stack is full) 3.b. [Insert element] [Increment TOP] TOP <- TOP+1 S[TOP]<- X 3.c. [Finish the process] STEP 4: Delete element in stack POP(S,TOP) 4.a. [Check for underflow condition] If(TOP <- 0) then Write(Stack is empty) 4.b. [Delete element] [Decrement TOP] TOP<- TOP-1 Delete S[TOP+1] 4.c.[Finish the process] STEP 5:Stop Coding: #include #include #define size 10 int stack[size],top=0,b; int res; void push(); void pop(); void display(); void main() { int c; clrscr(); printf("\n1.Push\n2.Pop\n3.Display"); do { printf("\n\nEnter your Choice :: "); scanf("%d",&c); switch(c) { case 1: push(); break; case 2: pop(); break; case 3: printf("\n\nContents of stack is \t"); display(); break; default: printf("\nInvalid Choice......"); exit(0); } }while(c<4); getch(); } void push() { if(top>=size) { printf("\nStack Overflow"); return; } else { printf("\nEnter the number to be pushed into the stack :: "); scanf("%d",&b); top++; stack[top]=b; printf("\nNumber pushed is %d",stack[top]); return; } } void pop() { if(top==0) { printf("\nStack Underflow"); return; } else { res=stack[top]; top--; printf("\nDeleted element is %d",res); return; } } void display() { int i; if(top==0) { printf("\nStack Underflow"); return; } for(i=top;i>0;i--) printf("%d , ",stack[i]); } Output: 1.Push 2.Pop 3.Display Enter your Choice :: 1 Enter the number to be pushed into the stack :: 3 Number pushed is 3 Enter your Choice :: 1 Enter the number to be pushed into the stack :: 5 Number pushed is 5 Enter your Choice :: 3 Contents of stack is 5 , 3 , Enter your Choice :: 2 Deleted element is 5 Enter your Choice :: 3 Contents of stack is 3 , Enter your Choice :: 8 Invalid Choice...... Ex. No.:2 Date : CONVERSION OF INFIX EXPRESSION TO POSTFIX Aim To write a C-program to convert the given infix expression to its postfix format. Algorithm STEP 1: Start STEP 2: Initialize the stack. STEP 3: While (INSTR!= NULL) STEP 4: CH= get the character from INSTR. STEP 5: If( CH= = operand) then append CH int POSTSTR else if(CH = = () then push CH into stack else if(CH = =)) then pop the data from the stack and append the data into POSTSTR until we get ( from the stack else while(precedence (TOP) >= precedence (CH)) pop the data from stack and append the data into POSTSTR. [End of while structure] [End of if structure] STEP 6: Push CH into the stack. STEP 7: [End of second while structure] STEP 8: pop all the data from stack and append data into POSTSTR. STEP 9: Stop Coding: #include #include int stack[20],top=0; char inf[40],post[40]; void push(int); void postfix(); char pop(); void main(void) { clrscr(); printf("\t\t\t****INFIX TO POSTFIX****\n\n"); printf("Enter the infix expression :: "); scanf("%s",inf); postfix(); getch(); } void postfix() { int i,j=0; for(i=0;inf[i]!=NULL;i++) { switch(inf[i]) { case '+': while(stack[top]>=1) post[j++]=pop(); push(1); break; case '-': while(stack[top]>=1) post[j++]=pop(); push(2); break; case '*': while(stack[top]>=3) post[j++]=pop(); push(3); break; case '/': while(stack[top]>=3) post[j++]=pop(); push(4); break; case '^': while(stack[top]>=4) post[j++]=pop(); push(5); break; case '(': push(0); break; case ')': while(stack[top]!=0) post[j++]=pop(); top--; break; default: post[j++]=inf[i]; } } while(top>0) post[j++]=pop(); printf("\nPostfix Expression is :: %s",post); } void push(int ele) { top++; stack[top]=ele; } char pop() { char e; e=stack[top]; top--; switch(e) { case 1: e='+'; break; case 2: e='-'; break; case 3: e='*'; break; case 4: e='/'; break; case 5: e='^'; break; } return(e); } Output: Enter the infix expression :: (a+b)/(c*d) Postfix Expression is :: ab+cd*/ Manual Calculation SE EXPRESSION STACK RESULT FIELD((AA++,(AB+,(AB)),(AB+//AB+((,/C(,/AB+C--,(,/AB+CD-,(,/AB+CD++,(,/AB+CD-E+,(,/AB+CD-E)),+,(,/AB+CD-E+++,/AB+CD-E+/F+AB+CD-E/F--AB+CD-E/F+G-AB+CD-E/F+GAB+CD-E/F+G- Ex.no.3 Date: IMPLEMENTATION OF LINEAR QUEUE USING ARRAYS Aim To write a C-program to implement linear queue data structure using arrays. Algorithm STEP 1: Start STEP 2: [Include all header files] STEP 3: [Declare the variables] STEP 4: [If n->1 call the function Enqueue( )] STEP 5: [If n->2 call the function Dequeue( )] STEP 6: [If n->3 call the function Peep( )] STEP 7: [If n->4 call the function Size( )] STEP 8: [If n->5 call the function View( )] STEP 9: [else Exit( )] STEP 10: Stop Algorithm for Enqueue( ) STEP 1: If[front= =rear] Initialize front=rear=0 STEP 2: else rear=(rear+1)% qsize Set queue[rear] =value [return] Algorithm for Dequeue( ) STEP 1: If[front = =rear] 1.1: temp=queue[front] 1.2: Initialize front=rear=-1 STEP 2:else 2.1: front=(front+1)% qsize [return] Algorithm for Peep( ) STEP 1:If [front= =rear] STEP 1.1: temp=queue[front] [return] Algorithm for Size( ) STEP 1:If [front= =rear] 1.1: Set f=front 1.2: Set count=1 STEP 2: If [front!=rear] 2.1: front=(front+1)%qsize 2.2: set count=count+1 [return] Algorithm for View( ) STEP 1: If [front = =rear] Write (Queue is empty) STEP 2: else [display elements] Coding: #include #include #define size 15 int queue[size],front=0,rear=0,b; int res; void enqueue(); void dequeue(); void display(); void main() { int c; clrscr(); printf("\n1.Insertion\n2.Deletion\n3.Display"); do { printf("\n\nEnter your Choice :: "); scanf("%d",&c); switch(c) { case 1: enqueue(); break; case 2: dequeue(); break; case 3: printf("\n\nContents of queue is \t"); display(); break; default: printf("\nInvalid Choice......"); exit(0); } }while(c<4); getch(); } void enqueue() { if(rear>=size) { printf("\nOverflow"); return; } else { printf("\nEnter the number to be entered :: "); scanf("%d",&b); rear++; queue[rear]=b; printf("\nNumber pushed is %d",queue[rear]); if(front==0) front=1; return; } } void dequeue() { if(front==0) { printf("\nUnderflow"); return; } else { res=queue[front]; if(front==rear) { front=0; rear=0; } else front++; } printf("\nDeleted element is %d",res); return; } void display() { int i; if(front==0) { printf("\nUnderflow"); return; } for(i=front;i<=rear;i++) printf("%d , ",queue[i]); } Output: 1.Insertion 2.Deletion 3.Display Enter your Choice :: 1 Enter the number to be entered :: 12 Number pushed is 12 Enter your Choice :: 1 Enter the number to be entered :: 2 Number pushed is 2 Enter your Choice :: 3 Contents of queue is 12 , 2 , Enter your Choice :: 2 Deleted element is 12 Enter your Choice :: 3 Contents of queue is 2, Ex.No.4 Date: ARRAY IMPLEMENTATION OF CIRCULAR QUEUE Aim To write a c program using arrays for implementing circular queue data structure. Algorithm Step 1: [Include All Header Files Required] Step 2: [Define the array size as 5 and declare front and rear pointers] Step 3: Declare the functions isEmpty() , isFull(), enqueue(), size(),dequeue(), peek() and view()] Step 4: [Call the functions] Choice :1 CALL enqueue() Choice :2 CALL deenqueue() Choice :3 CALL peek() Choice :4 CALL size() Choice :5 CALL view() Algorithm for isEmpty( ) Step 1: [Check for underflow]  If ( front -1 and rear -1 ) RETURN -1 Step 2: Else RETURN 0 [Finish the process] Algorithm for isFull( ) Step 1: [Check for overflow]  If (= (rear+1)% qsize front ) RETURN -1 Step 2: Else RETURN 0 [Finish the process] Algorithm for Enqueue( ) STEP 1: If[front= =rear] Initialize front=rear=0 STEP 2: else rear=(rear+1)% qsize Set queue[rear] =value [return] Algorithm for Dequeue( ) STEP 1: If[front = =rear] 1.1: temp=queue[front] 1.2: Initialize front=rear=-1 STEP 2:else 2.1: front=(front+1)% qsize [return] Algorithm for Peek( ) STEP 1:If [front= =rear] STEP 1.1: temp=queue[front] [return] Algorithm for Size( ) STEP 1:If [front= =rear] 1.1: Set f=front 1.2: Set count=1 STEP 2: If [front!=rear] 2.1: front=(front+1)%qsize 2.2: set count=count+1 [return] Algorithm for View( ) STEP 1: If [front = =rear] Write (Queue is empty) STEP 2: else [display elements] Coding: #include #include #define qsize 5 int queue[qsize],front=-1,rear=-1; void enqueue(int value); void dequeue(); void view(); void main() { int c,data,item; clrscr(); printf("\n1.ENQUEUE\n2.DEQUEUE\n3.VIEW"); while(1) { printf("\n\nEnter your Choice :: "); scanf("%d",&c); switch(c) { case 1: printf("\nEnter the element::"); scanf("%d",&data); enqueue(data); break; case 2: dequeue(); break; case 3: printf("\n\nContents of circular queue is \t"); view(); break; default: printf("\nInvalid Choice......"); exit(0); } } } int isfull() { extern int queue[],front,rear; if(front==(rear+1)%qsize) return(1); else return(0); } int isempty() { extern int queue[],front,rear; if((front==-1)&&(rear==-1)) return(1); else return(0); } void enqueue(int value) { extern int queue[],front,rear; if(isfull()) { printf("\nOverflow"); return; } else { if(isempty()) front=rear=0; else rear=(rear+1)%qsize; queue[rear]=value; } } void dequeue() { int value; extern int queue[],front,rear; if(isempty()) printf("\n\nQueue is Empty"); else { value=queue[front]; printf("\nDequeue value is %d",value); } if(front==rear) { front=-1; rear=-1; } else front=(front+1)%qsize; } void view() { extern int queue[],front,rear; int f; if(isempty()) printf("\nUnderflow"); else { printf("\nFront-->"); for(f=front;f!=rear;f=(f+1)%qsize) printf("%d ---> ",queue[f]); printf("%d <--Rear",queue[f]); } if(isfull()) printf("\nQueue is full"); } Output 1.ENQUEUE 2.DEQUEUE 3.VIEW Enter your Choice :: 1 Enter the element::2 Enter your Choice :: 3 Contents of circular queue is Front-->2 <--Rear Enter your Choice :: 1 Enter the element::3 Enter your Choice :: 1 Enter the element::5 Enter your Choice :: 3 Contents of circular queue is Front-->2 ---> 3 ---> 5 <--Rear Enter your Choice :: 2 Dequeue value is 2 Enter your Choice :: 3 Contents of circular queue is Front-->3 ---> 5 <--Rear Enter your Choice :: 4 Invalid Choice...... Ex.no.:5 Date : LINKED LIST IMPLEMENTATION OF STACK Aim To demonstrate linked list implementation of stack using a C program. Algorithm Step 1: [Include all the necessary header files] Step 2: [Declare the Variables] Step 3: Read operator  Step 4: IF opt 1 THEN Step 4.1: READ n  Step 4.2: WHILE (n n-1) Step 4.2.1: READ d Step 4.2.2: CALL INSERT( start , d) Step 4.3: [End of while Structure]  Step 5: IF opt 2 THEN Step 5.1: READ x Step 5.2: CALL del(start,x)  Step 6: IF opt 3 THEN Step 6.1: READ x Step 6.2: CALL FIND  Step 7: IF opt 4 THEN Step 7.1: READ x Step 7.2: CALL FINDPREVIOUS Step 8: IF opt 5 THEN Step 8.1: READ x Step 8.2: CALL FINDNEXT(start, x) Step 9: IF opt 6 THEN CALL len(Start) Step 10: IF opt 7 THEN CALL printlist(Start) Step 10: IF opt 8 THEN CALL erase (Start) Step 12: [End of Main] Algorithm For Find(struct node*p, int x, int *pos)  Step 1: temp p  Step 2 :*pos 1  Step 3: IF ( TEMP NULL) THEN RETURN NULL ELSE  WHILE ( TEMP!= NULL && TEMP DATA!= X) ASSIGN 1 TO *POS+1 AND TEMPS LLINK FIELD TO TEMP RETURN THE TEMP Algorithm for Previous (struct node*p, int x)  Step 1: temp p Step2: IF ( TEMP NULL) THEN RETURN NULL ELSE  WHILE (TEMP LINK != NULL && TEMP LINK DATA!= X) ASSIGN TEMPS LINK FIELD TO TEMP RETURN THE TEMP Algorithm For Find next(struct node*p, int x)  Step 1: temp p Step2: IF ( TEMP NULL) THEN RETURN NULL ELSE  WHILE (TEMP LINK != NULL && TEMP DATA!= X) ASSIGN TEMPS LLINK FIELD TO TEMP RETURN THE TEMPS LINK FIELD Coding: #include #include #include push(); void pop(); void display(); struct node { int data; struct node *next; }*top=NULL; void main() { int ch; clrscr(); printf("\n\n1.Push\n\n2.Pop\n\n3.Display"); do { printf("\n\nEnter your Choice :: "); scanf("%d",&ch); switch(ch) { case 1: push(); break; case 2: pop(); break; case 3: printf("\n\nContents of stack :: \t"); display(); break; default: printf("\n\nInvalid Choice......"); getch(); exit(0); } }while(ch<4); getch(); } push() { int x; struct node *newnode; newnode=malloc(sizeof(struct node)); printf("\n\nEnter the number to be pushed into the stack :: "); scanf("%d",&x); newnode->data=x; if(top==NULL) { newnode->next=top; top=newnode; } else { newnode->next=top; top=newnode; } printf("\n\nNumber pushed is %d",x); return(x); } void pop() { struct node *t; if(top==NULL) printf("\n\nStack Underflow"); else { t=top; top=top->next; printf("\nDeleted element is %d",t->data); free(t); } getch(); } void display() { struct node*i; for(i=top;i!=NULL;i=i->next) printf("%d , ",i->data); if(top==NULL) printf("Stack is empty"); getch(); } Output: 1.Push 2.Pop 3.Display Enter your Choice :: 1 Enter the number to be pushed into the stack :: 5 Number pushed is 5 Enter your Choice :: 1 Enter the number to be pushed into the stack :: 10 Number pushed is 10 Enter your Choice :: 3 Contents of stack :: 10 , 5 , Enter your Choice :: 2 Deleted element is 10 Enter your Choice :: 3 Contents of stack :: 5 , Enter your Choice :: 5 Invalid Choice...... Ex.no.:6 Date : LINKED LIST IMPLEMENTATION OF SINGLY LINKED LIST Aim: To write a program to implement singly linked list using linked list. Algorithm: Step 1: initialize the list as null Step 2: Display linked list operations insert, delete and display the result. Step 3: If choice is 1 the read element to be inserted and call the insert function Step 4: If choice is 2 then read element to be deleted and call the delete function Step 5: If choice is 3 then call display function Step 6: If choice is default the exit the program. Program: #include #include #include void insert(int x); void deletion(int x); void display(); struct node { int element; struct node *next; }*list=NULL,*p; struct node *find(int s) { p=list->next; while(p!=NULL && p->element!=s) p=p->next; return p; } struct node *findprevious(int s) { p=list; while(p->next!=NULL && p->next->element!=s) p=p->next; return p; } void main() { int data,ch; clrscr(); printf("\n\n1.INSERT\n\n2.DELETE\n\n3.DISPLAY"); do { printf("\n\nEnter your Choice :: "); scanf("%d",&ch); switch(ch) { case 1: printf("\n\nEnter the element to be inserted::"); scanf("%d",&data); insert(data); break; case 2: printf("\n\nEnter the element to be deleted::"); scanf("%d",&data); deletion(data); break; case 3: display(); break; default: printf("\n\nInvalid Choice......"); getch(); exit(0); } }while(ch<4); } void insert(int x) { struct node *newnode; int pos; newnode=malloc(sizeof(struct node)); newnode->element=x; if(list->next==NULL) { list->next=newnode; newnode->next=NULL; } else { printf("\n\nEnter the value of the element to be inserted ::"); scanf("%d",&pos); p=find(pos); newnode->next=p->next; p->next=newnode; } } void deletion(int x) { struct node *temp; temp=malloc(sizeof(struct node)); p=findprevious(x); if(p->next!=NULL) { temp=p->next; p->next=temp->next; printf("\n\nThe deleted element is %d",temp->element); free(temp); } else printf("\n\nElement is not found in the list!!!"); } void display() { if(list->next==NULL) printf("\n\nList is empty!!!"); else { p=list->next; printf("\n\nThe contents of the list are\n::"); while(p!=NULL) { printf("%d ->",p->element); p=p->next; } } } Output: 1.INSERT 2.DELETE 3.DISPLAY Enter your Choice ::1 Enter the element to be inserted::2 Enter your Choice ::1 Enter the element to be inserted::5 Enter the value of the element to be inserted ::2 Enter your Choice :: 3 The contents of the list are::2 ->5 ->NULL Enter your Choice :: 1 Enter the element to be inserted::7 Enter the value of the element to be inserted ::2 Enter your Choice :: 3 The contents of the list are ::2 ->7 ->5 ->NULL Enter your Choice :: 2 Enter the element to be deleted::5 The deleted element is 5 Enter your Choice :: 3 The contents of the list are ::2 ->7 ->NULL Ex.no.7 Date: DOUBLY LINKED LIST LINKED LIST IMPLEMENTATION Aim: To write a program to implement doubly linked list using linked list. Algorithm: Step 1: Declare header and pointer variables Step 2: Display the choices Step 3: If choice is 1 the get the element to be inserted in beginning and call ins_beg function. Step 4: If choice is 2 the get the element to be inserted in the end and call the ins_end function Step 5: If choice is 3 then get the element to be deleted and call deletion function. Step 6: If choice is 4 then call display duncation Step 7: If choice is default the exit the program Step 8: Terminate the program execution. Program: #include #include #include void display(struct node *first); struct node { int data; struct node *lptr,*rptr; }*head; struct node *ins_beg(int x,struct node *first) { struct node *new1,*cur,*prev; new1=malloc(sizeof(struct node)); if(first==NULL) { new1->data=x; new1->lptr=NULL; new1->rptr=NULL; return new1; } else { new1->data=x; new1->lptr=NULL; new1->rptr=first; return new1; } } struct node *ins_end(int x,struct node *first) { struct node *new1,*cur,*prev; new1=malloc(sizeof(struct node)); if(first==NULL) { new1->data=x; new1->lptr=NULL; new1->rptr=NULL; return new1; } else { cur=first; while(cur->rptr!=NULL) { prev=cur; cur=cur->rptr; } cur->rptr=new1; new1->data=x; new1->lptr=cur; new1->rptr=NULL; return first; } } struct node *deletion(struct node *first,int del) { struct node *prev,*cur; cur=first; if(first==NULL) { printf("\n\nNo data present!!!"); getch(); } else if(first->data==del) { printf("\n\nData %d is deleted",first->data); first=first->rptr; getch(); return first; } else { while(cur->rptr!=NULL && cur->data!=del) { prev=cur; cur=cur->rptr; } if(cur->rptr==NULL && cur->data!=del) printf("\n\nData is not present!!!"); else if(cur->rptr!=NULL && cur->data==del) { prev->rptr=cur->rptr; (cur->rptr)->lptr=prev; printf("\n\nData % d is deleted",cur->data); } else if(cur->rptr==NULL && cur->data==del) { prev->rptr=NULL; printf("\n\nData %d is deleted:",cur->data); } getch(); return first; } } void main() { int x,ch,del; head=NULL; clrscr(); printf("\n1.Insert in Begining\n2.Insert in the End\n3.Delete\n4.Display"); while(1) { printf("\n\nEnter your Choice :: "); scanf("%d",&ch); switch(ch) { case 1: printf("\n\nEnter the element to be inserted::"); scanf("%d",&x); head=ins_beg(x,head); break; case 2: printf("\n\nEnter the element to be inserted::"); scanf("%d",&x); head=ins_end(x,head); break; case 3: printf("\n\nEnter the element to be deleted::"); scanf("%d",&del); head=deletion(head,del); break; case 4: display(head); break; default: printf("\n\nInvalid Choice......"); getch(); exit(0); } } } void display(struct node *first) { struct node *temp; temp=first; if(temp==NULL) printf("\n\nList is empty!!!"); while(temp!=NULL) { printf("%d ->",temp->data); temp=temp->rptr; } getch(); } Output: 1.Insert in Begining 2.Insert in the End 3.Delete 4.Display Enter your Choice :: 1 Enter the element to be inserted::2 Enter your Choice :: 1 Enter the element to be inserted::3 Enter your Choice :: 4 3 ->2 -> Enter your Choice :: 2 Enter the element to be inserted::1 Enter your Choice :: 2 Enter the element to be inserted::5 Enter your Choice :: 4 3 ->2 ->1 ->5 -> Enter your Choice :: 3 Enter the element to be deleted::1 Data 1 is deleted Enter your Choice :: 4 3 ->2 ->5 -> Ex.no.:8 Date : POLYNOMIAL MANUPULATION Aim To implement polynomial manipulation using doubly linked lists. Algorithm POLYADD(POLY1: POLY2:POLY) HEAD:POLY Step 1: Assign HEAD+=NULL Step2: While (POLY !=null) Step3: HEAD=INSERTNODE(HEAD,COPYNODE,(POLY1,1)) Step4: POLY1=POLY1(NEXT Step5: [End of Step2 while structure] Step6: While(POLY2 1=NULL) Step7: HEAD =INSERTNODE(HEAD,COPYNODE(POLY2,1)) Step8: POLY2=POLY2(NEXT Step9: [End of Step 6 while Structure] Step10: Return HEAD END POLYADD() Algorithm for polynomial subtraction POLYSUB(POLY1:POLY, POLY2:POLY) HEAD:POLY Step1: Assign HEAD=NULL Step2: While(POLY1!=NULL) Step3: HEAD=INSERTNODE(HEAD,COPYNODE(POLY1,1)) Step4: POLY1=POLY1( NEXT Step5: [End of Step2 while Structure] Step6:While(POLY2!=NULL) Step7: HEAD=INSERTNODE(HEAD,COPYNODE(POLY2,-1)) Step8: POLY2=POLY2(NEXT Step9: [End of Step 6 While Structure] Step10: Return HEAD END POLYSUB() Coding: #include #include struct link { int coeff; int pow; struct link *next; }; struct link *poly1=NULL,*poly2=NULL,*poly=NULL; void create(struct link *node) { char ch; do { printf("\nEnter the coefficient :"); scanf("%d",&node->coeff); printf("\nEnter the power :"); scanf("%d",&node->pow); node->next=(struct link *)malloc(sizeof(struct link)); node=node->next; node->next=NULL; printf("\nContinue??? (Y/N) :"); ch=getch(); }while(ch=='y' || ch=='Y'); } void display(struct link *node) { while(node->next!=NULL) { printf("%dx^%d",node->coeff,node->pow); node=node->next; if(node->next!=NULL) printf(" + "); } } void polyadd(struct link *poly1,struct link *poly2,struct link *poly) { while(poly1->next && poly2->next) { if(poly->pow > poly2->pow) { poly->pow=poly1->pow; poly->coeff=poly1->coeff; poly1=poly1->next; } else if(poly1->pow < poly2->pow) { poly->pow=poly2->pow; poly->coeff=poly2->coeff; poly2=poly2->next; } else { poly->pow=poly1->pow; poly->coeff=poly1->coeff+poly2->coeff; poly1=poly1->next; poly2=poly2->next; } poly->next=(struct link *)malloc(sizeof(struct link)); poly=poly->next; poly->next=NULL; } while(poly1->next||poly2->next) { if(poly1->next) { poly->pow=poly1->pow; poly->coeff=poly1->coeff; poly1=poly1->next; } if(poly2->next) { poly->pow=poly2->pow; poly->coeff=poly2->coeff; poly2=poly2->next; } poly->next=(struct link *)malloc(sizeof(struct link)); poly=poly->next; poly->next=NULL; } } void main() { poly1=(struct link *)malloc(sizeof(struct link)); poly2=(struct link *)malloc(sizeof(struct link)); poly=(struct link *)malloc(sizeof(struct link)); clrscr(); printf("\nEnter the first polynomial::"); create(poly1); printf("\nFirst polynomial is :: \n"); display(poly1); printf("\nEnter the second polynomial::"); create(poly2); printf("\nSecond polynomial is :: \n"); display(poly2); polyadd(poly1,poly2,poly); printf("\nAddition of the two polynomials::"); display(poly); getch(); } Output Enter the first polynomial:: Enter the coefficient :5 Enter the power :3 Continue??? (Y/N) :Y Enter the coefficient :3 Enter the power :2 Continue??? (Y/N) : First polynomial is :: 5x^3 + 3x^2 Enter the second polynomial:: Enter the coefficient :7 Enter the power :3 Continue??? (Y/N) : Second polynomial is :: 7x^3 Addition of the two polynomials::12x^3 + 3x^2 Ex.no.:9 Date : BINARY SEARCH TREE Aim To write a C program to implement a stack using binary search tree. Algorithm [Include all the necessary header files.] [Declare the structure with all necessary variables.] Read x; Call INORDER(). Call PREORDER(). Call POSTORDER(). Call display(). Algorithm For INSERT(P,X) 1. If (p(NULL) Create P P<-data(x. P->lchild (P(rchild(NULL Else while(TEMP!=NULL) Temp2(Temp1 If(temp1(data(x) Else Temp1(Temp1(rchild [End of while structure] If(temp2(data(x) Temp 2(Temp2(lchild Temp 2(data(x Temp2(data(slchild(temp2(rchild Null Else Temp 2(Temp2(Temp2(rchild(null Temp2(data(x Temp 2(lchild(Temp 2(rchild(null [Return P] Algorithm For INORDER(p) 1.If(p!=Null) 2. CALL INORDER (p(xdhild) 3. WRITE(D(data) 4.CALL INORDER (p(rchild) 5. [End the function] Algorithm for PREORDER If (pl=NULL) WRITE (P(Data) CALL PREORDER (P(lCHILD) CALL PREORDER (P( Rchild) [END OF FUNTION] Algorithm for POSTORDER If (P!=NULL) Call POSTORDER (P(lchild) Call POSTORDER (P(rchild) Write (P(data) [End of function] Algorithm for COUNT If (P==NULL) Return 0 Else [Return (1+count(P(lchild)+call count(P(rchild)) ] Algorithm for postorder Algorithm for DISPLAY If (T!=NULL) X((lm+rm)/2 Call goto xy (x,4*y) Write (t--.data) Call display (t(lchild, lm,x, l+1) Call display (t(rchild, x, rm,l+1) [END THE FUNCTION} Algorithm for SEARCH 1. while(temp!=NULL) 2. If (temp(data(t) [Return temp] 3.If (Temp(data>x) Temp(temp(lchild 4. ELSE Temp(temp(rchild 5. [RETURN NULL] Ex.no. :10 Date : EXPRESSION TREE Aim: To write a C program to demonstrate an expression tree. Algorithm for Main () Step 1: [ INCLUDE NECESSARY HEADER FILES] Step 2: [READ X] Step 3:[ CALL EXPTREE(),CALL DISPLAY(), CALL INORDER(),CALL PREORDER(),CALL EVALUATE ()] Algorithm for EXPTREE() Step 1: Read Character  Step 2: IF Character operator then CALL PUSH_OP() Step 3: [IF Character has only numbers]  IF [ is ALnum( str[i] 1 )] THEN CREATE Newnode Step 4: Check for NULL condition Step 5: ASSIGN priority Step 6: IF ( Priority !=0) THEN CALL POP_OP() Step 7: IF Character = ) THEN CALL PUSH_OP() Algorithm for INORDER (tree t) Step 1: IF (t!=NULL) THEN  CALL INORDER(t left)  Step 2: PRINT t element  Step 3: CALL INORDER(t right) Algorithm for PREORDER (tree t) Step 1: IF (t!=NULL) THEN  PRINT t element  Step 2: CALL PREORDER(t left) Step 3: CALL INORDER(t right) Algorithm for POSTORDER(tree t) Step 1: IF (t!=NULL) THEN  CALL POSTORDER(t left)  CALL POSTORDER(t right) Step 2: PRINT t element Ex.no.:11 Date : PRIORITY QUEUE USING HEAP Aim: To implement priority queue using Heap in C program. Algorithm: Step 1: [Include necessary header files] Step 2: [Define maxsize as 15] Step 3: [Declare necessary variables] Step 4: READ option, opt IF opt is 1 THEN CALL INSERT() IF opt is 2 THEN CALL DELMAX() IF opt is 3 THEN CALL DIS() Step 5: [END OF MAIN FUNCTION] Algorithm For INSERT()  Step 1: I ne1+1  Step 2: IF (I MAXSIZE) WRITE ( Heap size exceeded) RETURN FALSE IF ( (I> 1) && (arraysize [i/2]< item) )  array[I] array[i/2]  I I/2  Array[I ] item RETURN TRUE Algorithm For DELMAX() Step 1: IF (!nel) WRITE (HEAP IS EMPTY) ELSE  *item array [I]  Array[i] array [nel--] CALL adjust (array,I,nel) Ex.no.:12 Date : HASHING TECHNIQUE Aim: To implement a program using Hashing technique. Algorithm: Step1: Include necessary header files Step2: Declare necessary variables Step3: Check the value of *S Then call Insert( ) Print Enter the string Read S Step4: Check the value of *S Step5: Then print S by calling hGetVal( ) Step6: Call PrintHash( ) Step7: End Algorithm For hINSERT( ): Step1: Allocate memory to pointer  Step2: Assign index hGetIndex ( )  Step3: Assign Ptr Key Strdup(key)  Ptr Val Val  Ptr next h[index]  h[index] Ptr Step4: Print h[index]=key Step5: Return Algorithm For hGETVALUE( ): Step1: [Ptr=h[hGetIndex(key)]] Step2: If[Ptr && strcmp(Ptr key)]  Then Ptr Ptr next Step3: If[Ptr],Check the value of Ptr  [Return Ptr Val] Step4: [Return -1] Algorithm For PRINTHASH( ): Step1: Initialise i=0 Step2: If [i < Hash size] Then Print i  Assign Ptr h[i] Check the value of Ptr If[Ptr!=0]  Then Ptr Ptr next  Print Ptr key=Ptr Val Step3: [Return] Coding: #include #include void main() { int a[10]={0,0,0,0,0,0,0,0,0,0}; int n,value,temp,hashvalue; clrscr(); printf("Enter the value of n (table size) ::"); scanf("%d",&n); do { printf("\nEnter the hash value ::"); scanf("%d",&value); hashvalue=value%n; if(a[hashvalue]==0) { a[hashvalue]=value; printf("\na[%d] The value %d is stored",hashvalue,value); } else { for(hashvalue++;hashvalue #include #define max 4 #define INFINITE 998 int allselected( int *selected) { int i; for(i=0;i #define MAXWEIGHT 100 int n = 3; /* The number of objects */ int c[10] = {8, 6, 4}; /* c[i] is the *COST* of the ith object; i.e. what YOU PAY to take the object */ int v[10] = {16, 10, 7}; /* v[i] is the *VALUE* of the ith object; i.e. what YOU GET for taking the object */ int W = 10; /* The maximum weight you can take */ void fill_sack() { int a[MAXWEIGHT]; /* a[i] holds the maximum value that can be obtained using at most i weight */ int last_added[MAXWEIGHT]; /* I use this to calculate which object were added */ int i, j; int aux; for (i = 0; i <= W; ++i) { a[i] = 0; last_added[i] = -1; } a[0] = 0; for (i = 1; i <= W; ++i) for (j = 0; j < n; ++j) if ((c[j] <= i) && (a[i] < a[i - c[j]] + v[j])) { a[i] = a[i - c[j]] + v[j]; last_added[i] = j; } for (i = 0; i <= W; ++i) if (last_added[i] != -1) printf("Weight %d; Benefit: %d; To reach this weight I added object %d (%d$ %dKg) to weight %d.\n", i, a[i], last_added[i] + 1, v[last_added[i]], c[last_added[i]], i - c[last_added[i]]); else printf("Weight %d; Benefit: 0; Can't reach this exact weight.\n", i); printf("---\n"); aux = W; while ((aux > 0) && (last_added[aux] != -1)) { printf("Added object %d (%d$ %dKg). Space left: %d\n", last_added[aux] + 1, v[last_added[aux]], c[last_added[aux]], aux - c[last_added[aux]]); aux -= c[last_added[aux]]; } printf("Total value added: %d$\n", a[W]); } int main(int argc, char *argv[]) { fill_sack(); return 0; }     Data structures and algorithms Lab manual for II year IT Department of IT, REC, Thandalam. *+`a 7 8 O P _ ` ̼ueeXKhs5CJOJQJaJhtG5CJOJQJaJhtGh=5CJOJQJaJhtGh^"\5CJOJQJaJh^"\5CJOJQJaJhs55CJOJQJaJh=5CJOJQJaJhtGh5CJOJQJaJhtGhtG5CJOJQJaJhOJQJ"htGh}BM5>*CJOJQJaJ"htGh5>*CJOJQJaJhvDCJ(aJ(+a 8 P ` p hdh^hgd^"\ & F dhgd^"\ & F dhgdtG^gdN $^a$gdtGgd      ` û{k\M{=4\MhNhtGCJhtG5>*CJOJQJ\aJhNh{FCJOJQJaJhNhtGCJOJQJaJhNhSa>*CJOJQJaJ%hNhO5>*CJOJQJ\aJhGD'htG5CJOJQJaJhGD'h) 5CJOJQJaJhc5CJOJQJaJhcOJQJhchc5OJQJhchq5OJQJhO5OJQJh}BM5>*OJQJhtGhz\5CJOJQJaJ   `  C k ^gd dh^gd  & F^`gdN $^a$gdc^gdGD'^gdN   " V Y  . E |   . 1 U X !"HP Ǹzh h 5CJOJQJaJhNh=)CJOJQJaJhSuhSu>*CJOJQJaJhSuhSuCJOJQJaJhKR5>*CJOJQJaJ"hSuhSu5>*CJOJQJaJhNhtGCJhNh{FCJOJQJaJhNhtGCJOJQJaJ,  P |  I n "#5GWpy^gdSu^gdN^gdN*6:EPZeoy!-/^gdSu/>A_ilru(*69Xbekn^gdSu)EGHPQX^hi^gdSu&'>?_`wx^gdSuBG8] $^a$gdGD'^gdN^gdSu BEFGfpEFGͺ||l`T`B"hSuhSu5>*CJOJQJaJh)CJOJQJaJhtGCJOJQJaJhNhtG>*CJOJQJaJhNh=)CJOJQJaJhNhtGCJOJQJaJhNh=)>*CJOJQJaJhNhO>*CJOJQJaJ%hNhO5>*CJOJQJ\aJ"hGD'htG5CJOJQJ\aJh h 5CJOJQJaJh h=)5CJOJQJaJ@bv!FGg 6FVbrt^gdSu^gdNVU\]op#$⟏wewewewewewewewewewewe[wh h)5CJ"hNh)5CJOJQJ\aJhNh)CJOJQJaJhNh)CJhNhtG>*CJOJQJaJ"hNhO5>*CJOJQJaJhSuCJOJQJaJ"hSuhSu5>*CJOJQJaJ$hSuhSuCJOJQJaJmH sH hSuhSuCJOJQJaJh 5>*CJOJQJaJ# ;>OS`y!7DO\u^gdSuu)BXcnz^gdSu%'0?GRU_is}^gdSu01STUVWXYZ[\]p$&`#$/If^gd)^gdN^gdSukTTT$$&`#$/If^a$gd)kd$$IflF $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd$$Ifl*F $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kdj$$Ifl*F $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd$$Ifl*F $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd$$Ifl*F $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd$$Ifl*F $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd>$$Ifl*F $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd$$Ifl*F $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd$$Ifl*F $`   6`02%6    44 la kTTT$$&`#$/If^a$gd)kd]$$IflF $`   6`02%6    44 la#kTT=$$&`#$/If^a$gd)$$&`#$/If^a$gd)kd$$IflF $`   6`02%6    44 la#$&,4kTTT$$&`#$/If^a$gd)kd$$IflF $`   6`02%6    44 la$45HIYZhixyĸ{i[H%hNhtG5>*CJOJQJ\aJhGD'htG5CJ\aJ"h h5CJOJQJ\aJh h 5CJOJQJaJh5CJ\h 5CJ\hNhSuCJOJQJaJhSuCJOJQJaJhCJOJQJaJhtGCJOJQJaJhNhtGCJOJQJaJhNh)CJOJQJaJ"hNh)5CJOJQJ\aJ457?HkTTT$$&`#$/If^a$gd)kd|$$IflF $`   6`02%6    44 laHIKOYkTTT$$&`#$/If^a$gd)kd1 $$IflF $`   6`02%6    44 laYZ\^hkTTT$$&`#$/If^a$gd)kd $$IflF $`   6`02%6    44 lahikmxkTTT$$&`#$/If^a$gd)kd $$IflF $`   6`02%6    44 laxy{}kTTT$$&`#$/If^a$gd)kdP $$IflF $`   6`02%6    44 lakTTT$$&`#$/If^a$gd)kd $$IflF $`   6`02%6    44 lakbbbbbbV dh^gd ^gdNkd $$IflF $`   6`02%6    44 la,-8Fi ? k !3!K!d!^gdN $^a$gdN dh`gd -.68 J!K!d!""")"*"y"z"{"""oo]MhtG5>*CJOJQJ\aJ"hNh 5CJOJQJ\aJh htG>*CJOJQJaJ%h htG5>*CJOJQJ\aJhNh CJOJQJaJhtGCJOJQJaJ%hNhtG5>*CJOJQJ\aJhNhtGCJOJQJaJhNh) >*CJOJQJaJhNhtG>*CJOJQJaJhO5>*CJOJQJ\aJd!~!!!!!""*"C"_"z"{""""""" #A#[#\#r#s#####^gdN""Z#[#\#q#r#s####$$$^$ѿ݀thVG8h}h}CJOJQJaJh}5>*CJOJQJaJ"h}h}5>*CJOJQJaJh}CJOJQJaJhGD'CJOJQJaJhSCJOJQJaJh h >*CJOJQJaJhtG5>*CJOJQJ\aJ%h htG5>*CJOJQJ\aJ"hNh 5CJOJQJ\aJhtGCJOJQJaJhNhtGCJOJQJaJ%h h 5>*CJOJQJ\aJ####$$$,$<$^$g$w$$$$$$$$$$%)%5%9%D%R%\%^gd}^gdN^$$((****&*M*P*Q*S*****޳rbSG8hNh CJOJQJaJhZCJOJQJaJhNhZCJOJQJaJhNhZ5CJOJQJaJ"h hZ5>*CJOJQJaJh>Q5>*CJOJQJaJhGD'hZ5CJOJQJaJh h 5CJOJQJaJhNhGD'CJOJQJaJh}CJOJQJaJh}h}>*CJOJQJaJh}h}CJOJQJaJ$h}h}CJOJQJaJmH sH \%g%u%%%%%%%% & &&%&'&6&8&H&K&c&m&p&v&y&&&&&'^gd}''"','/'1'@'B'P'S'l'v'y''''''''''''((((!(^gd}!()(7(:(S(](`(z(((((((((((()))).)/)S)T)g)h)^gd}h)))))))))))******* * * * * ******^gdN^gd}******* *&*M*Q*******++++++,,1,2, ^`gd $^a$gdN^gdN****k+r++++++0,1,2,J,K,L,N,l,wgTB2hNh=`HCJOJQJ\aJ"hNh=`H5CJOJQJ\aJ%h h)5>*CJOJQJ\aJh=`H5>*CJOJQJ\aJ%h h=`H5>*CJOJQJ\aJhNh CJOJQJaJh=`HCJOJQJaJh CJOJQJaJhNh=`HCJOJQJaJhNhZCJOJQJaJhNhZ5CJOJQJaJ"h h 5>*CJOJQJaJhZ5>*CJOJQJaJ2,K,L,l,,,,,,,,,-=-J-b-z-{------ .9.:. ^`gd ^`gd ^gdNl,n,q,,,,,,,-----:-z-{------..../.8.ȹz`ȹTȹHHHHh CJOJQJaJhpeCJOJQJaJ3jhNh=`HCJOJQJU\aJmHnHuh CJOJQJ\aJh h=`H>*CJOJQJaJ%h h=`H5>*CJOJQJ\aJh 5CJOJQJ\aJhNh=`HCJOJQJaJhNh=`HCJOJQJ\aJh-/CJOJQJ\aJ3jhNh-/CJOJQJU\aJmHnHu8.9.:.S.T.w.~..... / /////.///0/v/z///////// 0+0O0[0000000ôôôôôåϕôsôôôôôdϥh 5CJOJQJ\aJ"hNh=`H5CJOJQJ\aJh h >*CJOJQJaJh=`H5>*CJOJQJ\aJhNh CJOJQJaJhNh=`HCJOJQJaJh CJOJQJaJ%h h=`H5>*CJOJQJ\aJ"hNh 5CJOJQJ\aJh=`HCJOJQJaJ':.S.T.n.....///////0/I/e///////0F0s000 ^`gd ^gdN000000'1(101B1T1d11111111122 2G2Y2e2i2^gd} ^`gd ^gdN000 1 1(1/101P7X7K9L9M9`9c9s9t9999zjZJ:hGD'hZ5CJOJQJaJhGD'h=`H5CJOJQJaJhNh=`H5CJOJQJaJhh5CJOJQJaJhpeCJOJQJaJh}CJOJQJaJh=`HCJOJQJaJ%h}h}5>*CJOJQJ\aJh}h}CJOJQJ\aJ"h}h=`H5>*CJOJQJaJ"h}h}5>*CJOJQJaJh CJOJQJaJhNh=`HCJOJQJaJi2t222222222+363@3L3q3}33333333333344^gd}4"4?4L4R4_4a4y4{4444444444455/52545C5E5Q5q55^gd}555555555 666686:6F6H6h6p666666667"707^gd}07M7O7P7Q7X7Y7c7m7t7u777777777788881828G8H8_8^gd}_8`8~8888888889992939H9I9J9K9L9M9N9O9P9Q9R9S9^gdN^gd}S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9c9l9t99999999":C: $^a$gdN^gdN999999999Z:[:e:f:t:x:::;;;;;!;/;ĵ{ll{SDlDlhNh CJOJQJaJ0jhNhbCJOJQJUaJmHnHuhNhbCJOJQJaJ0jhNh5OCJOJQJUaJmHnHu"hh5>*CJOJQJaJh5O5>*CJOJQJaJhNhCJOJQJaJh5OCJOJQJaJhNh5OCJOJQJaJ"hh5O5>*CJOJQJaJh 5>*CJOJQJaJC:Z:y:::::;0;C;a;;;;;;;<0<T<s<<<<<< = = ^`gd^gdN/;0;a;b;;;;;;;;T<U<\<]<l<m<<<<<<<<<<< = =⺡jj[hNhd)CJOJQJaJ0jhNhgyYCJOJQJUaJmHnHuhNhgyYCJOJQJaJhNhA^CJOJQJaJ0jhNh9CJOJQJUaJmHnHuhNh9CJOJQJaJ0jhNhbCJOJQJUaJmHnHuhNhbCJOJQJaJhNh=`HCJOJQJaJ =%=&===>=L=V=W=X=p=q===$>R>S>m>n>>>>>$?ôzaRaRaRFRh>QCJOJQJaJhNhZTCJOJQJaJ0jhNhZTCJOJQJUaJmHnHu"h>QhZT5>*CJOJQJaJ0jhNh CJOJQJUaJmHnHuhNh CJOJQJaJhNhA^CJOJQJaJ0jhNhA^CJOJQJUaJmHnHu"h hS5>*CJOJQJaJ"h hA^5>*CJOJQJaJ ===W=p=====>#>$>R>l>>>>>>>?$?%?S?T?n???? ^`gd>Q^gdN$?%?7?Qh>Q5>*CJOJQJaJh3n5>*CJOJQJaJ"h>QhT!5>*CJOJQJaJ"h>Qh3n5>*CJOJQJaJhNh3nCJOJQJaJ??@&@'@(@0@D@V@i@q@}@@@@@@@@@@@AAACAVAcA^gd}^gdN(@/@0@2@DEFFFFFFFFFF;G;͟reVF9*hs5hs5CJOJQJaJhs55CJOJQJaJhPhs55CJOJQJaJhs55>*CJOJQJaJhP5CJOJQJaJhPhP5CJOJQJaJhP5CJOJQJaJhLqhP5CJOJQJaJhNh=`HCJOJQJaJh}h}>*CJOJQJaJh}h}CJOJQJaJhNhbCJOJQJaJ"h}hb5>*CJOJQJaJ"h}h}5>*CJOJQJaJcAgArA~AAAAAAAAAB-B9BEBIBXBbBdBkBmBuBBBBCC&C^gd}&C)C>CMCPCVCYCnC}CCCCCCCCCD D DD&DSD^DaDkDmD|D~D^gd}~DDDDDDDDDEEEEE E7E8EjEkE~EEEEEEEEEE^gd}EFF.F/FEFFF]F^FxFyFFFFFFFFFFFFFF $^a$gdP ^`gd[, $^a$gdN^gdN^gd}FF*CJOJQJaJh^"\h^"\5CJOJQJaJh^"\5CJOJQJaJh^"\5CJOJQJaJhPhP5CJOJQJaJhPCJOJQJaJhpeCJOJQJaJhs5hs5hs5CJOJQJaJhs55>*CJOJQJaJ"hs5hs55>*CJOJQJaJhs5CJOJQJaJIIII JJJDJQJ\J^JjJlJzJJJJJJJK KKJKaKsK~KKK`gdPKKKKKLL%LMLZLgLkLzL|LLLLLLLMMM2M5M;M>MMM`gdPMMMMMMMMM"N6NINLN\NrNNNNNNNO O OBOHOKO[OO`gdPOOOOOOOOOOOOOOOPP:P;PQPRPvPwPPPPPP`gdP`gdPPPQQ*Q+Q]Q^QuQvQQQQQQQQQRRARBRCRDRERFRGR $^a$gdNgds5`gdPGRHRIRQRWRRRRRR S*SSSHT|TTTTTUU;UGUIUTU^gdP$a$gd^"\gd^"\gdP $^a$gdNTUnUvUUUUUUU V V3VBVEVKVNV^VqVVVVVVVV WW W0W^gdP0WCWVWeWhWnWqW~WWWWWWWWWXXXXLXNXgXsXXXXXX^gdPXXXYY'Y7Y:Y@YCYnYrYYYYYYZZ0ZKZ{ZZZZZZZ[^gdP[[[[$[&[5[A[L[[[[[[[[[2\F\`\k\v\\\\\\%];]^gdP;]X]c]n]]]]]]]]]]^^^'^7^Y^l^o^^^^^^^^^^gdP^^^^^ _ __2_3_4_K_L_M_q_r_s_____________^gdP_```)`:`;`R`u`````````````````````gdP^gdP``````````/a8a9aaaaa^b_bsbzbbbbbĵssaR@"hLqhLq5>*CJOJQJaJhMw5>*CJOJQJaJ"hLqhMw5>*CJOJQJaJhpehMwCJOJQJaJ" jhNhMwCJOJQJaJhNhMwCJOJQJaJ"hNhMw5>*CJOJQJaJhLq5>*CJOJQJaJhNhMw5CJOJQJaJh[,5CJOJQJaJhLqhLq5CJOJQJaJ h%h[,h[,hP`````````/a9aTa^axaaaabbLbdbbbbbb^gdN $^a$gdN^gdLqgdPbbbbc0c_cxccccc&d:dHdIdQdddvdddddddde^gd}^gdLq^gdNbqcrcccccddHdIdPdQdllmmnnnn$n'nIJtgtWGh[,htG5CJOJQJaJh[,hLq5CJOJQJaJh[,5CJOJQJaJhLqhLq5CJOJQJaJh}h}>*CJOJQJaJh}h}CJOJQJaJhLq5>*CJOJQJaJ"h}h}5>*CJOJQJaJhLqCJOJQJaJhpehMwCJOJQJaJ" jhNhMwCJOJQJaJhNhMwCJOJQJaJee eee;eXezeeeeef*fGfIfifkfffffffff8g:g]g^gd}]g`g}ggggggggh.hDhHhOhShlhhhhhhi%i(iIiLi^ibi^gd}bi{iiiiiiiijjQjdjwjzj|jjjjj"k-kXkhkkkkkl^gd}ll3lclsl}llllllllllllllmmmm-mDmPmnmmm^gd}mmmmmmmmmmmnn$n(nlnvnnnnnno & Fdh^`gdLq^gdN $^a$gdN^gdLq^gd}'n(nlnunvn o!o"o0o;o*CJOJQJaJhtG5>*CJOJQJaJ"hNhLq5>*CJOJQJaJhNh)CJOJQJaJhtGCJOJQJaJhLq5>*CJOJQJaJhNhtGCJOJQJaJ"hNhtG5>*CJOJQJaJo!o"o*CJOJQJaJhNh)CJOJQJaJhtGCJOJQJaJhLqCJOJQJaJ" jhNhtGCJOJQJaJhNhtGCJOJQJaJ" jhNhtGCJOJQJaJ7kpppppppppqqq4q5qBqQqjqqqqq^gd) & F^`gdN^gdN dh^gd) & Fdh^`gd)pppppppppppqqq3q4q5qJqKqaqbqzq{qqqqqqqqqqqqqrrͻͻm^mmh)5>*CJOJQJaJ"h)htG5>*CJOJQJaJhNh)CJOJQJaJhtGCJOJQJaJ" jhNhtGCJOJQJaJhNhtGCJOJQJaJ"hLqh)5>*CJOJQJaJhtG5>*CJOJQJaJ"hLqhtG5>*CJOJQJaJ"hLqhLq5>*CJOJQJaJ$qqqqqr$r1r:r?rrrrrrrrrs%s8sMs & F^`gdN & Fdh^`gd) dh^gd)^gdN & Fdh^`gd)r#r$rQrRrfrgrrrrrrrrss8sFsMsmsnsrssssssssssssssssssͻͻͩ͗ͻͻͩͻ͗ͻ͗ͻ͗ͻ͈xhhNhS5CJOJQJaJhNh}}5CJOJQJaJhNh}}CJOJQJaJ" jhNhtGCJOJQJaJ"h)htG5>*CJOJQJaJ" jhNhtGCJOJQJaJhNhtGCJOJQJaJ"h)h}}5>*CJOJQJaJ"h)h)5>*CJOJQJaJ%Msbswssssssssssst ttt]tsttttu)u*u p^p`gd1^gd1 $^a$gdN^gdNsssst ttttt#t%t.t2t]totrtstȸwhwYwG8Gh15>*CJOJQJaJ"hNhFJ5>*CJOJQJaJhNhFJCJOJQJaJhNh~CJOJQJaJhNhMwCJOJQJaJhNhMw5CJOJQJaJ"hNhMw5>*CJOJQJaJh[,hS5CJOJQJaJh[,hMw5CJOJQJaJhNh15CJOJQJaJh[,5CJOJQJaJh15CJOJQJaJhS5CJOJQJaJstutvtttttttuu(u)u*uBuCuuuuvеiZK2K0jhNh;kCJOJQJUaJmHnHuhNh;kCJOJQJaJhNhm@CJOJQJaJ0jhNhm@CJOJQJUaJmHnHu"hNh15>*CJOJQJaJh~5>*CJOJQJaJ"hNh~5>*CJOJQJaJh1CJOJQJaJhNh~CJOJQJaJhNhFJCJOJQJaJhNh~5CJOJQJaJhNhFJ5CJOJQJaJ*uBunuuuuu v%vTvvvvvvvw+w,wLwgwwwwwwx1xUx^gdNvvvvvvvvvvvvvwww*w+w,w;wӲx_P_PD2"hNh[&5>*CJOJQJaJhqCJOJQJaJhNhqCJOJQJaJ0jhNhqCJOJQJUaJmHnHu0jhNh;kCJOJQJUaJmHnHuhNh;kCJOJQJaJ"h)h15>*CJOJQJaJh;k5>*CJOJQJaJ"h)ha5>*CJOJQJaJ"h)h;k5>*CJOJQJaJhNh1CJOJQJaJh;kCJOJQJaJ;wCwLwgwhwwwwwwwwwxx1x2xUxVxWxuxxxxxxʹʹͥʹ}n^QA^h1hp5CJOJQJaJh[,5CJOJQJaJh1h15CJOJQJaJhNhpCJOJQJaJhNh`oCJOJQJaJ0jhNhaCJOJQJUaJmHnHuhNhaCJOJQJaJ0jhNh[&CJOJQJUaJmHnHuhNh[&CJOJQJaJ"hNh[&5>*CJOJQJaJ"hNha5>*CJOJQJaJUxvxwxxxyxzx{x|x}x~xxxxxxxxxxxxyyEyeyy ^gd1^gdN ^`gd)xxxxxyy(z?z@zAzBz[z\z]z^zzzzzzzzz {{{{'{({4{7{A{ttttttttteS"hNhr5>*CJOJQJaJhNh"wKCJOJQJaJhNhrCJOJQJaJ0jhNhrCJOJQJUaJmHnHuh1CJOJQJaJ0jhNhpCJOJQJUaJmHnHu"hNhp5>*CJOJQJaJh[,hp5CJOJQJaJhNhpCJOJQJaJh15CJOJQJaJ yyyyz'z(z?z[z}zzzzz {%{4{5{6{7{N{a{{{{{{{{{^gdNA{N{{{{{{{{{{{{{{{{{{{ߺߺ߫}n_O?2hV65CJOJQJaJhNhV65CJOJQJaJhNhS5CJOJQJaJhNhm@CJOJQJaJhNhqCJOJQJaJhNhaCJOJQJaJhNhpCJOJQJaJhNhp5CJOJQJaJhNhrCJOJQJaJh1CJOJQJaJ0jhNh"wKCJOJQJUaJmHnHuhNh"wKCJOJQJaJ"hNh"wK5>*CJOJQJaJ{{{{{{{{{{{{{{{{{{{{{||||O|^gd[,^gd1 $^a$gdN^gdN{{{{{{{|||||||P|Z|[|\|t}}}}}}}}}ŸқshshshSChShNhV6OJQJmHnHu(jhNhV6OJQJUmHnHuhNhV6OJQJh1hV65>*OJQJh1h15>*OJQJhNhV65OJQJh[,hV65CJOJQJaJhV65CJOJQJaJh[,5CJOJQJaJh15CJOJQJaJhNhV65CJOJQJaJhNhV5CJOJQJaJhV5CJOJQJaJO|P|[|\||||||}"}M}g}s}t}}}}}~<~c~{~~~~~~~^gdN}~~ ~<~>~A~c~d~~~~~~~Z[(*57MNO\`ƸƸzg%hh5>*OJQJmHnHuhV6OJQJmHnHuhNhV6OJQJmHnHu+jhNhV65OJQJUmHnHuhNhOJQJh1hV65>*OJQJh1h15>*OJQJhNhV65OJQJ(jhNhV6OJQJUmHnHuhNhV6OJQJ'~4Zu(MzĀƀA^gd^gdN,-./89AVYyjXF6+htJ5>*OJQJh[,hV65CJOJQJaJ"h1h15OJQJmHnHu"h1hV65OJQJmHnHuh[,5OJQJmHnHuhNh1OJQJmHnHuh1OJQJmHnHuhR OJQJmHnHuhV6OJQJmHnHuhNhV6OJQJmHnHuhhOJQJmHnHuhR h5CJOJQJaJhR hCJOJQJaJh5>*OJQJmHnHuARVYŁ܁$(TYqwƂ (RWo^gdW#^gdouă J_q{}~˄̄ #?^gdW#^gd?_`z67Q|ӆ*Uqׇ^gd !"#$%&'()*+,-^gdN^gd-./9AVZˈ(45RSjˉډۉ $^a$gdN^gdNYZ[5CQRSۉ x%&*۴{ri{rY{Khshs5>*OJQJh[,hs5CJOJQJaJh[,5OJQJhp)5OJQJhs5OJQJ$hR hCJOJQJaJmH sH hR hCJOJQJaJhhV65>*OJQJhh5>*OJQJhtJhtJ5>*OJQJhtJ5>*OJQJhNhV6OJQJhNhV65OJQJhtJhV65>*OJQJ>nzNJ݊!6VX`tދ!5^gd^gdN5Mcsό$@F`yɍύԍ؍^gd w̎36AKMNOPQRSTUV^_^gdȏ%&+|,N^gd F^gdQ ^`gd<^gds^gdp) $^a$gds^gd*+,./58{| ݾͰݤtbQ@Q@Q@Q h[,h FCJOJQJ^JaJ h[,hCJOJQJ^JaJ"hh F5>*CJOJQJaJhQ5>*CJOJQJaJ"hh5>*CJOJQJaJh F5>*CJOJQJaJhsCJOJQJaJh<hs5>*OJQJh<h<CJOJQJaJh<hs5CJOJQJaJh<hsCJOJQJaJhs5OJQJhs5>*OJQJԑՑFhڒ  "jѓߓ589D^x^gd FД"01CDN~,/0[]^^gd F ǸhR hMM%hR CJOJQJaJh:jh:U h[,h[,CJOJQJ^JaJh[,CJOJQJ^JaJhCJOJQJ^JaJ #$ !(a$gdMM% "$ !a$gdMM%^gd Fz+p,p-p.p1h/R 4567:pN/ =!"#8$% $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l* 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $$If!vh5` 5 5 #v` #v #v :V l 6`02%65` 5 5 $666666666vvvvvvvvv6666666666666666666666666666666666666666666666666666666hH666666666666666666666666666666666666666666666666666666666666666666T@T jNormalu]^uCJ_HaJmH sH tH P@P tG Heading 1 $@&CJ OJPJQJ^JaJT@T tG Heading 2$@&^|CJOJPJQJ^JaJT@T tG Heading 3$@&^|CJ OJPJQJ^JaJDA@D Default Paragraph FontRi@R 0 Table Normal4 l4a (k( 0No List FOF tG Char Char2CJ OJPJQJ^JaJFOF tG Char Char1CJOJPJQJ^JaJDOD tG Char CharCJ OJPJQJ^JaJPO"P tG List Paragraph ^m$OJPJQJ^JL"@L tGCaption5CJ$OJPJQJ\^JaJ`>@B` Title"$dh]^a$5OJQJ\aJmH sH e@R HTML PreformattedK 2( Px 4 #\'*.25@9]^CJOJQJ^JaJOa 7[co2Oq 7[kw4O 7[br0&O& 7[comultiO 7[kw2O 7[kw1O 7[kw3O 7[st0O 7[es0O 7[nu02B@2  7[ Body Text xDT@D  7[ Block Text!x]^4@"4 MM%Header " !4 @24 MM%Footer # ! +a8P`p`CkP|In"#5GWpy*6:EPZeoy!-/>A_ilru    ( * 6 9 X b e k n    ) E G H P Q X ^ h i   & ' > ? _ ` w x       B G  8 ] @bv!FGg 6FVbrt ;>OS`y!7DO\u)BXcnz%'0?GRU_is}01STUVWXYZ[\]p #$&,457?HIKOYZ\^hikmxy{},-8Fi?k 3Kd~*C_z{ A[\rs,<^gw)59DR\gu  %'68HKcmpvy",/1@BPSlvy    ! ) 7 : S ] ` z !!!!.!/!S!T!g!h!!!!!!!!!!!""""""" " " " " """""""""""" "&"M"Q""""""*######$$1$2$K$L$l$$$$$$$$$%=%J%b%z%{%%%%%% &9&:&S&T&n&&&&&'''''/'0'I'e'''''''(F(s((((((((')()0)B)T)d)))))))))** *G*Y*e*i*t*********++6+@+L+q+}++++++++++++,,",?,L,R,_,a,y,{,,,,,,,,,,,--/-2-4-C-E-Q-q---------- ....8.:.F.H.h.p......../"/0/M/O/P/Q/X/Y/c/m/t/u//////////00001020G0H0_0`0~0000000001112131H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1l1t11111111"2C2Z2y22222303C3a3333333404T4s444444 5 5=5W5p555556#6$6R6l66666667$7%7S7T7n777778&8'8(808D8V8i8q8}88888888888999C9V9c9g9r9~999999999:-:9:E:I:X:b:d:k:m:u::::;;&;);>;M;P;V;Y;n;};;;;;;;;;< < <<&<S<^<a<k<m<|<~<<<<<<<<<===== =7=8=j=k=~==========>>.>/>E>F>]>^>x>y>>>>>>>>>>>>>>>EEEEEEEEEEE"F6FIFLF\FrFFFFFFFG G GBGHGKG[GGGGGGGGGGGGGGGGHH:H;HQHRHvHwHHHHHHHII*I+I]I^IuIvIIIIIIIIIJJAJBJCJDJEJFJGJHJIJQJWJJJJJJ K*KKKHL|LLLLLMM;MGMIMTMnMvMMMMMMM N N3NBNENKNNN^NqNNNNNNNN OO O0OCOVOeOhOnOqO~OOOOOOOOOPPPPLPNPgPsPPPPPPPPQQ'Q7Q:Q@QCQnQrQQQQQQRR0RKR{RRRRRRRSSSS$S&S5SASLSSSSSSSSS2TFT`TkTvTTTTTT%U;UXUcUnUUUUUUUUUUVVV'V7VYVlVoVVVVVVVVVVVVV W WW2W3W4WKWLWMWqWrWsWWWWWWWWWWWWWXXX)X:X;XRXuXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Y9YTY^YxYYYYZZLZdZZZZZZZZZ[0[_[x[[[[[&\:\H\I\Q\d\v\\\\\\\\]] ]]];]X]z]]]]]^*^G^I^i^k^^^^^^^^^8_:_]_`_}________`.`D`H`O`S`l``````a%a(aIaLa^aba{aaaaaaaabbQbdbwbzb|bbbbb"c-cXchcccccdd3dcdsd}ddddddddddddddeeee-eDePeneeeeeeeeeeeeeff$f(flfvffffffg!g"gnzǂ݂!6VX`tރ!5Mcsτ$@F`yɅυԅ؅ w̆36AKMNOPQRSTUV^_ȇ%&+|,NԉՉFhڊ  "jыߋ589D^xЌ"01CDN~,/0[]^ 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000000 0 0 00000000000000000|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|0|0|0|0|0|(0|0(0|00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0 0 0 0 0 0 00000000 0 0 0 0 0 0 0 0 0 0  0  0  0  0 00000000000 0 0 0 0 000 0 0 0 0 000 0 0 0 000 0 0 0 0 0 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000I00I00I00I00I00I00I00I00@"0A0 0 r.@#0I0 0 r.I00\ #$45HIYZhixyH\ԉՉFhڊ "jыߋ589D^xЌ"01CDN~,/0[]^ K006taK00/tK00 l9-v0K00v039 dK00 @ ,=%߀K0 0 @0JK0 0 :0tK00@&0@&KK00I 9 l9-v0KK00K00&K00@XJK00@`0p#`K00t 3dK00>o%4K000 .%K00 @z ,-%߀K0 0! @T|JK0"0#@\~:K0$0%m(=(l9-a2@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@00 FFjjjm $"^$*l,8.09/; =$?(@;G`b'noprsstv;wxA{{}Y* MPRY[luwy /u#4HYhxd!#\%'!(h)*2,:.0i24507_8S9C: =?cA&C~DEFIKMOPGRTU0WX[;]^_`be]gbilmokpqMs*uUxy{O|~Ao?-5 NQSTUVWXZ\]^_`abcdefghijkmnopqrstvxz{|}~ O\(TW# AA@=V(  NB  S DNB   S DNB   S DNB  S DNB  S DNB  S DNB  S DNB  S DNB  S DNB  S D NB  S D NB  S D NB  S D NB  S D NB  S DNB  S DNB  S DNB  S D  `BCDEF@#"   hBhCDE Fh@#"    `BCDEF@#" NB ! S D " `BCDEF@#" NB # S D $ `BhCDEFh@#" NB '@ S DNB *@ S D - lBCDEF@#"  . lBCDEF@#"  / lBCDEF@#"  0 lBCDEF@#"  1 lBCDEF@#"  2 lBCDEF@#"   3 lBCDEF@#" ! 4 lBCDEF@#" # 5 lBCDEF@#" "NB :@ S D$NB ;@ S D%NB <@ S D&NB = S D'NB >@ S D(NB ?@ S D)NB @@ S D*NB A@ S D+NB B@ S D-NB C@ S D,NB D@ S D.NB E@ S D/NB F@ S D1NB G@ S D0NB H@ S D2NB I S D3NB J S D5NB K S D4NB L S D6NB M@ S D7NB N@ S D9NB O@ S D8NB P S D;NB Q S D:B S  ?l$m$%Z223a333T444=5W5p55R6m6666T7o777Bmmnnogooop1pUp?r[rrr sssuuuvv t$Pt'} t*pxpt-\ t.$ t/\ t1$ t0\ t2\ t3Jt5yt4$ t:$ t; | |t< nnt=$ T ct>| t?| i it@| tA tCM tB~ tD  tE\ tG\ tF " tH > tI x@ xtK u\ utJ$ u utL ~@ ~tM tO \ tN n tQo tPtŠL"Ơ#Ǡ#Ƞ#ɠYʠtˠ̠͠XΠ4ϠdРOѠҠ\ӠԠ2ՠ3֠D3נ3ؠ3٠LZڠZ۠Zܠ ZݠLZޠZT3T35GPGPPPiQiQQQRRRR0S0S5U5URURUkl      W3W35JPJPPPlQlQQQRRRR3S3S8U8UUUUUol  9*urn:schemas-microsoft-com:office:smarttagsStateV*urn:schemas-microsoft-com:office:smarttagsplacehttp://www.5iantlavalamp.com/ `,3>EWZpstw"'CILRw} ; A D J p s    ! + 1 @ A   $'@CVabqu~%&-.17GJKL%(KP Y`#*<?^fgvw!&GNjq!,3MSV_{6=U[^h " % & ' < B E O e f g n p v | J#Q#V#\#`#g#r#y#####@$G$$$'%,%%%%%H&O&&&@(E(9)@)K)R)\)a)d)g)n)s)))))))))))))))"*(*-*3*I*N*Q*V*w*}************+++O+U+X+`+++++++++++++++ , ,, ,f,m,n,q,,,,,,,,,,,,,--9-@-F-I-Y-\-e-o-u-|-----------1.6.P.S.\.f.i.l.t.{.................////&/,/2/8/;/A/00X3_3y4|444;8B8M8T8_8g8888888888888889$9)9/9E9J9M9S9_9a99999 ::::0:5:Q:S:Y:^:n:q:v:|::::::::::::::::::;; ;+;2;D;K;[;b;t;{;;;;;;;;;;;;;(<.<1<9<F<J<b<g<<<<<<<<<<<<<<<<<<<<<@@@@A AAA.A1AFALAUAXAcAiAAAAAAAABBBmBpBqBxB{BBBBBBBBBBBBCCCC#C)CNCSCVC^CCCCCCCCC)D/D4DTCTOTVTWT]TzTTTTTTTTTTTTTTTU)U.U1U8UMUUUUUUUUUUUV V9V?VDVIVqVwVVVVVVVZ\b\m\t\v\|\\\\\\\\\\\\\\\] ]]]]%]>]C]F]N]P]U][]a]d]j]}]]]]]]]]]]]]]]]^^ ^^ ^!^&^2^4^=^?^V^\^^^^^^^^^^^^^^_k_n_x_{_____________`` ````'`,`\`_`g`j`u`z```````````kanavayaaaaaaaaaaaaa&b,b4b:b;bAbBbHbbbbbbbbbbbbbbbbbbbc c cccc#c)c.c4c7c=cicocrcxcccccccccdd4d:d=dFdtdydfglgpgvggghh h'h.h4hRhXhrhxhhhhhhibihi|iiiiiiRjXjgjmjjjjjjjjjjjjjkkkkkkkkmmmmmmmmVq]qrr\s_sssssssBuIuZucuuuuuuuvv v#v8v;vAvDvwvzvvvvvvvvvvvvwww$w'w>wAwVwYwewhwwwwwwwwwwwwxxx x#x1x4x>xAxXx[xkxnxxxxxxxxxxyy yyyByGyJyOy[yaydyjyyyyyyyyyyyyyyyyyyz/zDzEzPzbzkzwz}zzzzzzzzzzz{ {{${/{B{C{N{`{i{u{{{{{{{{{{{{{|||$|'|*|L|Q|T|\|r|w|}}Z~j~3C؀[efg 23 69:EGJY\]^efkpƒŃǃ҃&',1@AՄքۄ !+2<=TUW^elmnƅDž!$wx{|Ɇц҆׆܆"-./BGՉ؉03hkڊ݊#&:;|} !+,-JKQR[\Ԍތߌ %+ruÍčōɍʍύٍڍۍ,-28dnΎ؎$17^agjkow{ >C #&[^EGPS 17X[WZpsy} ,3=AHMSX]ahlrw|!%03CJagmqw~   ! + . ; B Z ` f j p t    + 2 Q W X ] ^ g t |   2 : W Z k s G # G M l p QWqu  #6:FJVabqrtu~!%@GVZdj~ &+;@HMRV`fz #-3GL\aglqx~(,39@EHOW[lquy"DH 6;bgy~%CIYalo "'03RXrxSYjo<?^fgvw+2<@GOUZ_cjrx}"'+9<MTekqu{  $*15CFU\ntz~   " % * - < C U [ a e | "!*!F!O!s!{!!!!!!!!"J#R#########$ $$#$@$H$t${$$$$%&%%%%%%% &&1&7&H&P&\&_&&&&&&& '''','6'9'X'^'|''''''((5(7((((( ))d)g)))))))))))))))**"*)*I*O*[*b*l*p*w*~****************+.+3+9+>+C+J+O+V+t+y+++++++++++++++, ,#,&,A,H,M,Q,T,[,a,e,|,,,,,,,,,,,,,,,-- --"-4-8-F-I-R-X-r-u-----------.. ....!.&.:.>.I.O.i.l.q.t...........//#/&/2/9/Y/b/c/l/m/s///////%0-0S0[00000&1.1c1k1l1s11122T3X3A4J4y4}4444455^5a5}5555x6~66687=7z7777i8n8q8u8}8888888888888888999%9E9K9X9_9j9n9v9{999999999999999999: ::0:6:<:A:J:P:Y:_:d:j:n:q:v:|:::::::; ;;;+;2;@;D;Q;U;[;b;p;t;;;;;;;;;;;;;<<<<(</<U<Z<b<h<m<q<<<<<<<<<<<<<======+=3=_=f=======> >">*>Q>Y>j>q>>>>> AA A$A6A:AFALAUAXAcAiAAAAAAAAABBRBXB^BbBmBpB{BBBBBBBBBBBC CCCCNCTCeClCwC|CCCCCCCCCCCCCD DDDD#D)D0DQDWD^DcDlDrD|DDDDDDDDDDDDE EE%E6E:E@EGEEEEEEEEEEEEEFF7F:FNFSF^F_FtF{FFFFFFFFF GG"G)GCGGG]GdGGGGGGGGGGG HHFHOHHHHHHIPI[IiIqIIIIIJJ.J4JMM;MAMJMMMUM[MvM|MMMMMMM5N;NFNJNNNNNNNNN OOXO^OiOmOsOwOOOOOOOOOP PP POPUPhPlPtPwPPPPPPPPP QQQ$Q)Q/Q;Q?QEQKQuQzQQQQQQQQQRR4R7RNRURRRRRRRRSS SSS'S*S6S;SBSISMSTSSSSSSSSSSSTT6T\G\v\|\\\\\\\\\\\]] ]]]]>]D][]b]}]]]]]]]]]^^!^+^1^I^M^l^r^^^^^^^^^^^;_A_b_e_________``J`N`V`Z`o`s```aaaa)a/aNaQaeaia~aaaaaaaabbSbXbfbjb|bbbbbbbb#c*c.c5cYc`cicpcccccccccddd d4d;dddldtdzddddddddddeee)e,e>eBekemexeeeeeeeeefffffgggg0g7ghhhhhhhhjjPkVkkkkk~llllllm(mzm~mmmmm1n;nnnnnnnooZo\oooooooppp!p9pCppppppqqqqqqqrr6r>rrrrrrrssEsMs[s_ssssssttNtttttBuJuZuduuuvvZv\vgvivvvvvvvvv;w>wwwx xxxxxy yyyByHySyUy[ybyyyyyyyyyyyz#z+z/z]z`zwz~zzzzz{ {{%{+{/{[{^{u{|{{{{{||||L|R|`|f|r|x|||||||} }#}%}o}w}}}}}}}F~N~|~~~~~~~'UW[؀CO 35MVɂ҂69Y\aevy"&7@NWdmt|фՄ(+KTemڅ vx{͆ц7=BHՉ؉hkڊ݊#&ns֋ۋ:<EH`c{} %,29EHOTŽ18^a 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333+8"VY.1UX!Q ]GI-8Kd*{s!"" "&"S"""2$J$q$$%@%{%%%%%%&.&/&S&T&w&x&&& ' '''.'w''''''((((((c1s1t1111#2C2\2y22222c333334T4t444444 5r5555556#666 8%8>>>>),ua Kq+{{s:aH2}^`.^`.pL^p`L.@ ^@ `.^`.L^`L.^`.^`.PL^P`L.88^8`o(. ^`hH.  L ^ `LhH.   ^ `hH. xx^x`hH. HLH^H`LhH. ^`hH. ^`hH. L^`LhH.^`.80^8`0o(.80^8`0o(..^`o(... `^``o( .... `^``o( ..... p^p`o( ......  ^ `o(.......  ^ `o(........^`o(.^`.pL^p`L.@ ^@ `.^`.L^`L.^`.^`.PL^P`L.k^`ko(0^`0o(.0^`0o(..p^p`o(... @ `^@ ``o( ....  `^ ``o( ..... x^x`o( ...... H^H`o(....... ^`o(........^`.80^8`0o(.80^8`0o(..^`o(... `^``o( .... `^``o( ..... p^p`o( ......  ^ `o(.......  ^ `o(........^`o(.^`.pL^p`L.@ ^@ `.^`.L^`L.^`.^`.PL^P`L.^`OJQJo(hH^`OJQJ^Jo(hHopp^p`OJQJo(hH@ @ ^@ `OJQJo(hH^`OJQJ^Jo(hHo^`OJQJo(hH^`OJQJo(hH^`OJQJ^Jo(hHoPP^P`OJQJo(hH808^8`0o(. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.8^8`.^`. L^ `L. ^ `.x^x`.HL^H`L.^`.^`.L^`L.^`o(.T^T`.$ L^$ `L. ^ `.^`.L^`L.d^d`.4^4`.L^`L. +C s0s)aH2}Yd"+{{sh{0+G,MzI*ua K`W>                                             J8                          ]KFZ+~2(#PqX}v!f^}<3n&jbON ) @0s51[&)c}}MM%GD'p)>+-/[5V6d89q!;]> `@vD F{FtGtG=`HFJtJ"wK}BM>Q/RKR"WgyY 7[^"\z\YXc=4oqLqrSuMwZzVxpe P:q5OA^Zd)Sa;k`o3&QUSZTp $RSHdR W#=)pDs~m@T!=a `[,p #$&,457?HIKOYZ\^hikmxy{} @̾s @UnknownGz Times New Roman5Symbol3& z Arial;WingdingsIFMonotype CorsivaU.{ @CalibriCentury Gothic?5 z Courier New"1h66o1zIo1zI!84dWW 2qHP $PtG2Array implementation of StackInnovaaUltimateuser8         Oh+'0  ( H T `lt| Array implementation of StackInnovaaUltimateNormaluser2Microsoft Office Word@F#@~o?@~o?o1z՜.+,0  hp   Grizli777IW Array implementation of Stack Title  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry F@o?Data 1TableFWordDocument|SummaryInformation(DocumentSummaryInformation8CompObjq  FMicrosoft Office Word Document MSWordDocWord.Document.89q