void clean_up_unknown() { if(verbose_lvl) cout << indent(2) << "Cleaning up invalid hosts." << endl; // create a list of all links from an unknown to a node, and a list of // links from a node to an unkown and store them in a map LinkMap to_u; LinkMap from_u; fill_maps(network, to_u, from_u); // give all members of an non-empty intersection, of two elements of both // maps, the same name for(LinkMap_iter to_iter = to_u.begin(); to_iter != to_u.end(); to_iter++) for(LinkMap_iter from_iter = from_u.begin(); from_iter != from_u.end(); from_iter++) if(to_iter->first->name() != from_iter->first->name()) { HostPList hl = intersect(to_iter->second, from_iter->second); if(!hl.empty()) equilize_names(network, hl); } // clean up trash remove_from_list(hostlist, trash); network.sort(); network.unique(); }
int main(int argc, char* argv[]) { LinkList<Node> linklist; Node* a1 = new Node; a1->a = 1; linklist.Push_Back(a1); Node* a2 = new Node; a2->a = 2; linklist.Push_Back(a2); Node* a3 = new Node; a3->a = 3; linklist.Push_Back(a3); Node* a4 = new Node; a4->a = 4; linklist.Push_Back(a4); Node* a5 = new Node; a5->a = 5; linklist.Push_Back(a5); while(!linklist.IsEmpty()) { printf("dump:%d\n", linklist.Dump()); Node* temp = linklist.Front(); printf("value:%d\n", temp->a); linklist.Pop_Front(); } printf("end\n"); return 0; }
int init() { linklist[0] = 1; linklist.pushback(2); linklist.pushback(3); linklist.pushback(4); linklist.pushback(5); return 0; }
void Display(LinkList<T> &list) { cout << list.Count() << " element(s): "; for (int i = 1; i <= list.Count(); i++) { cout << list.Get(i) << " "; } cout << endl; }
static void fill_maps(LinkList& hl, LinkMap& to, LinkMap& from) { for(LinkList_iter hl_iter = hl.begin(); hl_iter != hl.end(); hl_iter++) { if(hl_iter->a->unknown) to[hl_iter->b].push_back(hl_iter->a); if(hl_iter->b->unknown) from[hl_iter->a].push_back(hl_iter->b); } }
void test_deleteDuplicates(){ LinkList link; int arr[] = {1, 1, 1, 1}; vector<int> ivec(arr, arr+4); ListNode *p1 = link.createListNode(ivec); link.printListNode(p1); p1 = link.deleteDuplicates(p1); link.printListNode(p1); cout<<endl; }
int main() { LinkList<int> intlinklist; for (int i = 0; i < 5; i++) { intlinklist.Insert(i, i); } intlinklist.PrintList(); system("pause"); }
void test4() { LinkList list; list.PushBack(4); list.PushBack(1); list.PushBack(3); list.PushBack(2); cout << list << endl; list.BubbleSort(); cout << list << endl; }
int console_blit_completion(ContextPtr env, char *cmd) { if(!cmd) return 0; ViewPortPtr screen = getSelectedScreen(); if(!screen) { ::error("no screen currently selected"); return 0; } // Find completions BlitPtr exactBlit; LinkList<Blit> retList; LinkList<Blit> &list = screen->getBlitter()->getBlits(); std::string cmdString(cmd); std::transform(cmdString.begin(), cmdString.end(), cmdString.begin(), ::tolower); std::copy_if(list.begin(), list.end(), retList.begin(), [&] (BlitPtr blit) { std::string name = blit->getName(); std::transform(name.begin(), name.end(), name.begin(), ::tolower); if(name == cmdString) { exactBlit = blit; } return name.compare(cmdString) == 0; }); if(retList.empty()) return 0; if(exactBlit != NULL) { snprintf(cmd, MAX_CMDLINE, "%s = ", exactBlit->getName().c_str()); return 1; } if(cmdString.empty()) { notice("List available blits"); } else { notice("List available blits starting with \"%s\"", cmd); } int c = 0; char tmp[256]; std::for_each(retList.begin(), retList.end(), [&] (BlitPtr b) { if(c % 4 == 0) { if(c != 0) { ::act("%s", tmp); } tmp[0] = '\0'; } strncat(tmp, "\t", sizeof(tmp) - 1); strncat(tmp, b->getName().c_str(), sizeof(tmp) - 1); ++c; }); return c; }
//gives a weigth for a node int HostClass::host_count() const { //kick out doubles network.sort(); network.unique(); //run through network and count the number of occurences int hit_count = 0; for(LinkList_iter li = network.begin(); li != network.end(); li++) if(li->a->ip == ip || li->b->ip == ip) hit_count++; return hit_count; }
TEST(rearrangeTest, rearrage){ LinkList* lst = new LinkList(); int input[] = {9,3,7,1,6,5,2,8}; int result[] = {2,1,3,9,7,6,5,8}; for (int i = 0; i < 8; i++){ lst->addToTail(input[i]); } rearrange(lst, 4); for (int i = 0; i < lst->length; i++){ EXPECT_EQ(result[i], lst->getAtIndex(i)); } }
TEST(rearrangeTest, rearrageOneElement){ LinkList* lst = new LinkList(); int input[] = {3}; int result[] = {3}; for (int i = 0; i < 1; i++){ lst->addToTail(input[i]); } rearrange(lst, 4); for (int i = 0; i < lst->length; i++){ EXPECT_EQ(result[i], lst->getAtIndex(i)); } }
void test2() { LinkList list; list.PushBack(1); list.PushBack(2); list.PushBack(3); list.PushBack(4); cout << list << endl; list.PopBack(); cout << list << endl; list.PopFront(); cout << list << endl; }
const LinkList<T> & LinkList<T>::operator =(const LinkList<T> &rhs) //PreCondition: rhs != this //PostCondition: rhs is copyed into this { if(this!=&rhs) { resize(rhs.length()); for(int i=0;i<rhs.length();i++) { at(i)=rhs.atc(i); } } return *this; }
void test1() { LinkList list; list.PushBack(1); list.PushBack(2); list.PushBack(3); list.PushBack(4); cout << list << endl; LinkList l2(list); cout << l2 << endl; list.PushFront(0); cout << list << endl; }
int main() { int num; cin >> num; long long *Hash1 = new long long[num]; //哈希表1 long long *Hash2 = new long long[num]; //哈希表2 LinkList *NumList = new LinkList[Prime]; //储存相同字符串序号 string *str = new string[num]; //储存输入字符串 int *list = new int[Prime]; //作比较时用 for (int i = 0; i < Prime; ++i) list[i] = -2; for (int i = 0; i < num; ++i) //每输入一个字符串,对应得到两个哈希值 { cin >> str[i]; Hash1[i] = BKDRHash(str[i], str[i].length()); Hash2[i] = RSHash(str[i], str[i].length()); if (list[Hash1[i]] == -2) //哈希值1还没有出现过 { list[Hash1[i]] = i; //设置头结点 NumList[list[Hash1[i]]].setNum(list[Hash1[i]]); } else if (Hash2[list[Hash1[i]]] == Hash2[i]) //哈希值2相等 NumList[list[Hash1[i]]].add(i); //加点 } bool output = false; //判断是否有相同字符串 LinkList *p; for (int i = 0; i < Prime; ++i) { p = &NumList[i]; if (p->NextNode() != NULL) { output = true; //有相同字符串 for (; p != NULL; p = p->NextNode()) { p->outputNum(); //输出 cout << " "; } cout << endl; } } if (!output) //没有相同字符串 cout << -1; return 0; }
void test1() { LinkList mylist; mylist.push_back(1); mylist.push_back(2); mylist.push_back(3); LinkList mylist2(mylist); LinkList mylist3; mylist3 = mylist2; cout << mylist2 << endl; cout << mylist << endl; cout << mylist3 << endl; }
void operator()(const boost::match_results<std::string::const_iterator>& elem) { Link l; l.target = new string(elem.str(1)); convertLowerInplace(*l.target); l.resolved = false; links.push_back(l); }
int console_filter_completion(ContextPtr env, char *cmd) { if(!cmd) return 0; // Find completions FilterPtr exactFilter; LinkList<Filter> retList; LinkList<Filter> &list = env->getFilters(); std::string cmdString(cmd); std::transform(cmdString.begin(), cmdString.end(), cmdString.begin(), ::tolower); std::copy_if(list.begin(), list.end(), retList.begin(), [&] (FilterPtr filter) { std::string name = filter->getName(); std::transform(name.begin(), name.end(), name.begin(), ::tolower); if(name == cmdString) { exactFilter = filter; } return name.compare(cmdString) == 0; }); if(retList.empty()) return 0; if(exactFilter != NULL) { ::notice("%s :: %s", exactFilter->getName().c_str(), exactFilter->getDescription().c_str()); snprintf(cmd, MAX_CMDLINE, "%s", exactFilter->getName().c_str()); return 1; } if(cmdString.empty()) { notice("List available filters"); } else { notice("List available filters with \"%s\"", cmd); } int c = 0; char tmp[256]; std::for_each(retList.begin(), retList.end(), [&] (FilterPtr f) { if(c % 4 == 0) { if(c != 0) { ::act("%s", tmp); } tmp[0] = '\0'; } strncat(tmp, "\t", sizeof(tmp) - 1); strncat(tmp, f->getName().c_str(), sizeof(tmp) - 1); ++c; }); return c; }
void parseLinks(string s, LinkList& l) { const boost::regex linkRE("\\[\\[([^|\\]]+)(?:\\|[^\\]]+)?\\]\\]", boost::regex::perl); boost::sregex_iterator itr(s.begin(), s.end(), linkRE); boost::sregex_iterator end; linkListBuilder builder; builder = for_each(itr, end, builder); l.swap(builder.links); }
BLIT schiffler_mulbyte(void *src, void *dst, int bytes, LinkList<ParameterInstance> ¶ms) { unsigned char v; { v = (unsigned int) *(float*)(params.front()->get()); // only one value } SDL_imageFilterMultByByte((unsigned char*)src, (unsigned char*)dst, bytes, v); }
int main() { int an[] = {1,2,3,4,5,6}; int len = sizeof(an)/sizeof(an[0]); LinkList<int> mylist; for(int i=0;i<len;++i) { //mylist.push_front(an[i]); mylist.push_back(an[i]); } mylist.show_list(); mylist.reverse(); mylist.show_list(); for(i=0;i<len+1;++i) { mylist.pop_front(); //mylist.pop_back(); mylist.show_list(); } return 0; }
BLIT schiffler_binarize(void *src, void *dst, int bytes, LinkList<ParameterInstance> ¶ms) { unsigned char v; { v = (unsigned int) *(float*)(params.front()->get()); // only one value } SDL_imageFilterBinarizeUsingThreshold ((unsigned char*)src, (unsigned char*)dst, bytes, v); }
int TCstring::compare(LinkList<TCHAR> input, bool caseSensitive)const{ int length; bool equalLength = false; if (getLength() < input.getLength()){ length = getLength(); } else if (getLength() == input.getLength()){ length = getLength(); equalLength = true; } else{ length = input.getLength(); } TCHAR SS, inp; for (int i = 1; i <= length; i++){ SS = SuperString.getRecord(i); inp = input.getRecord(i); if(!caseSensitive){ SS = towupper(SS); inp = towupper(inp); } if (SS == inp){ continue; } else if (SS > inp){ return -1; } else{ return 1; } } if (equalLength)//it got out of the loop without determining a winner. so they're equal, as long as the length is equal return 0; else{//if the length is not equal, then the shorter one wins. if (length == getLength()){ return -1; } else{ return 1; } } }
void customer_arrived() { cout << "======================一位客户到达======================" << endl; //处理客户到达事件,en.NType=0 QNode *qe = new QNode(); //客户到达时间,处理业务所需要的时间,指向下一个对象 int durtime, intertime; //一个是处理业务所需要的时间,一个是下一个客户到达的所需时间 ++CustomerNum; //人数++ //参数两个随机数,代表处理业务需要的时间,下一个客户到达的时间 durtime = rand() % (MAX_TIME + 1); //这个额是[0 ~ MAX_TIME(30)] intertime = rand() % (INTERVAL + 1); //这个是下一个客户进入银行要等待的时间[0~INTERVAL(5)] //如果银行没有关门,我们要产生下一个事件到达 int t = en.getOccurTime() + intertime; if (t < closeTime) { //插入事件表下一个事件 Event ei; ei.setOccurTime(t); ei.setNType(0); ev.insert(ei); } int i = min_queue(q); //求得最短的队列,注意我们有1到4队列,没有0队列 //吧事件插入到最短的队列中 //首先我们的事件发生时间(事件到达时间)和执行时间 qe->setArrivalTime(en.getOccurTime()); qe->setDuration(durtime); //时间的执行时间 q[i]->enQueue(qe); //吧qe插入到链表中 //判断我们插入的队列是不是长度是1,如果是代表在插入之前这个窗口是空的,这个的作用 //客户离开事件,是要首先计算该客户在银行逗留的时间,然后从队列中删除该客户之后查看队列是否为空,若不为空则设定一个新的对头客户离开事件 en.setOccurTime(en.getOccurTime() + durtime); //设置新的时间到达事件 en.setNType(i); //0代表新的客户到达,1是1号窗口客户离开,2是2号窗口客户离开,3是3号窗口客户离开,4是。。。,这里是客户到达事件,所以是0 if (q[i]->length() == 1) { //吧第i个队列的离开事件插入事件表,等会用来计算窗口的客户总时间 ev.insert(en); } }//customer_arrived()
Simulater(int i,int j,int k){ // 在构造函数中创建每个窗口的个数 int jj,kk; id_win = 0; id_user = 0; NormalBankWindow *NBW; VIPBankWindow *VNW; OfficialBankWindow *OBW; for(; id_win < i;id_win++){ NBW = new NormalBankWindow(id_win); nbw.add(*NBW); } for(jj = 0; jj < j;jj++){ VNW = new VIPBankWindow(id_win++); vbw.add(*VNW); } for(kk = 0; kk < k;kk++){ OBW = new OfficialBankWindow(id_win++); obw.add(*OBW); } }
int main() { LinkList<A> l; for (int i = 0; i < 10; i++) { cout << "push_back: " << i << endl; l.push_back(A(i)); } cout << "end push_back" << endl; LinkList<A>::iterator iter = l.begin(); LinkList<A>::iterator end = l.end(); while (iter != end) { cout << "iter: " << (*(iter++)).getNum() << endl; } cout << "end: " << l.size() << endl; return 0; }
//1 reads in from file. Will need to call other functions depending on the commands listed. void readCommand(char* argv[]) { LinkList<string> list; ifstream inFile; inFile.open(argv[1]); string command; int index = 0; string item; ofstream outFile; outFile.open(argv[2]); while (inFile >> command ) { if (command == "insert") { inFile >> index >> item; list.insert(index, item); outFile << "insert " << index << " " << item <<endl; //call insert command function } else if (command == "remove")
int main() { LinkList test; test.add(2); test.add(4); test.add(6); test.add(8); test.add(14); cout << test.isMember(3) << endl; cout << test.isMember(8) << endl; cout << test.isMember(4) << endl; cout << test.isMember(12) << endl; test.print(); test.remove(8); test.print(); return 0; }
LinkList<T>::LinkList(LinkList &tcopy) //PostCondition: LinkList is a copy of tcopy { head=NULL; tail=NULL; int i; NODE<T> *newNode; newNode=NULL; for(i=0;i<tcopy.length();i++) { newNode=new NODE<T>; if(!newNode) { cerr<<"Out Of Memory!"<<endl; exit(1); } else { if(head) { tail->next=newNode; tail=tail->next; tail->next=NULL; tail->data=tcopy[i]; } else { head=newNode; tail=head; head->data=tcopy[i]; } } } mylength=tcopy.length(); }