data structures using insert_queue(node)while(front <rear/*continue loop until queue is empty *del_node delete_queue()topsort[jdel_node/*add the deleted node to topsort* ++/*delete the del_node edges *for(node node <nnode++if(adj[del_node][node= adj[del_node][node indeg[nodeindeg[node if(indeg[node= insert_queue(node)printf("the topological sorting can be given as :\ ")for(node= ; < ;node++printf("% ",topsort[node])void create_graph(int ,max_edges,org,destprintf("\ enter the number of vertices")scanf("% ",& )max_edges *( )for( <max_edgesi++printf("\ enter edge % ( to quit)", )scanf("% % ",&org,&dest)if((org = &(dest = )breakiforg |dest |org < |dest < printf("\ invalid edge") --else adj[org][dest void display(int ,jfor( = ; <= ; ++printf("\ ")for( = ; <= ; ++printf("% ",adj[ ][ ])void insert_queue(int nodeif (rear==max- printf("\ overflow ")else if (front =- /*if queue is initially empty *