import time import sys class Node: def __init__(self,value): self.data = value self.next = 0 self.prev = 0 class List: def __init__(self): self.firstNode = Node(0) def __ShowNodeData(self,aNode): if aNode.next != 0: f2.write("\n") f2.write(aNode.data) self.__ShowNodeData(aNode.next) def Dump(self): self.__ShowNodeData(self.firstNode) def InsertAfter(self,aNode,aNewNode): self.prev=aNewNode.prev aNewNode.next = aNode.next aNode.next = aNewNode aNewNode.prev=self.prev def InsertBeginning(self,aNewNode): aNewNode.next = self.firstNode aNewNode.prev=self self.firstNode = aNewNode self.prev=None t1=time.clock() aList = List() f1=open('in9_5.txt','r') f2=open('out_15_9_5.txt','w') w=f1.readline() lis=w.split(",") n=int(lis[0]) m=int(lis[1]) f1.readline() w=f1.readline() lt=w.split(",") for i in range(n): lt[i]=Node(lt[i]) for i in range(n): aList.InsertBeginning(lt[i]) f2.write("before insertion") aList.Dump() f1.readline() w=f1.readline() lts=w.split(",") count=0 for i in range(m): lts[i]=Node(lts[i]) for i in range(n): count=count+1 aList.InsertAfter(lt[i],lts[i]) f2.write("\nafter insertion") aList.Dump() t2=time.clock() t=t2-t1 mem=sys.getsizeof(n)+sys.getsizeof(m)+sys.getsizeof(lt)+sys.getsizeof(lts) n=n+m f2.write("\nno.of elements=%d"%n) f2.write("\nno. of operations=%d"%count) f2.write("\ntime taken=%f\nmemory used=%d\n"%(t,mem)) f1.close() f2.close()