Êý¾Ý½á¹¹ÊµÑéÒ» ͨѶ¼ ÏÂÔØ±¾ÎÄ

±±¾©Óʵç´óѧÐÅÏ¢ÓëͨÐŹ¤³ÌѧԺ

Êý¾Ý½á¹¹ÊµÑ鱨¸æ

ʵÑéÃû³Æ£º ʵÑéÒ»¡ª¡ªÏßÐÔ±í ѧÉúÐÕÃû£º ´óѧ°Ô °à ¼¶£º xxxxxxxxxx °àÄÚÐòºÅ£º xx ѧ ºÅ£º xxxxxxxxxx ÈÕ ÆÚ£º 2012Äê11ÔÂ1ÈÕ

1£® ʵÑéÒªÇó

ʵÑéÄ¿µÄ£º

1. ѧϰָÕ룬ģ°åÀ࣬Òì³£´¦ÀíµÄʹÓã» 2. ÕÆÎÕÏßÐÔ±íµÄ²Ù×÷ʵÏÖ·½·¨£»

3. ÅàÑøÊ¹ÓÃÏßÐÔ±í½â¾öʵ¼ÊÎÊÌâµÄÄÜÁ¦¡£ ʵÑéÄÚÈÝ£º

ÀûÓÃÏßÐÔ±íʵÏÖÒ»¸öͨѶ¼¹ÜÀí£¬Í¨ÐżµÄÊý¾Ý¸ñʽÈçÏ£º struct DataType {

int ID; //±àºÅ char name[10]; //ÐÕÃû char ch; //ÐÔ±ð char phone[13]; //µç»° char addr[31]; //µØÖ· };

¾ßÌåÒªÇó£º

1. ʵÏÖͨÐżµÄ½¨Á¢¡¢Ôö¼Ó¡¢É¾³ý¡¢Ð޸ġ¢²éѯµÈ¹¦ÄÜ

2. Äܹ»ÊµÏÖ¼òµ¥µÄ²Ëµ¥½»»¥£¬¼´¿ÉÒÔ¸ù¾ÝÓû§ÊäÈëµÄÃüÁѡÔñ²»Í¬µÄ²Ù×÷ 3. Äܹ»±£´æÃ¿´Î¸üеÄÊý¾Ý

4. ±àдmain()º¯Êý²âÊÔ²Ù×÷µÄÕýÈ·ÐÔ

2. ³ÌÐò·ÖÎö

±à³ÌÍê³ÉͨѶ¼µÄÒ»°ãÐÔ¹ÜÀí¹¤×÷ÈçͨѶ¼ÖмǼµÄÔö¼Ó¡¢Ð޸ġ¢²éÕÒ¡¢É¾³ý¡¢Êä³öµÈ¹¦ÄÜ¡£Ã¿¸ö¼Ç¼°üº¬ÐÕÃû¡¢µç»°ºÅÂ롢סַµÈ¸öÈË»ù±¾ÐÅÏ¢¡£ Óá¶Êý¾Ý½á¹¹¡·ÖеÄÁ´±í×öÊý¾Ý½á¹¹½áºÏcÓïÑÔ»ù±¾ÖªÊ¶±àдһ¸öͨѶ¼¹ÜÀíϵͳ¡£±¾³ÌÐòΪʹÓ÷½±ã£¬¼¸ºõ²»ÓÃÌØÊâµÄÃüÁֻÐè°´ÌáʾÊäÈë¼´¿É£¬Êʺϸü¶àµÄÓû§Ê¹Ó᣶ÔÓÚ½¨Á¢Í¨Ñ¶Â¼¹ÜÀíϵͳ£¬ÔòÐèÁË½â²¢ÕÆÎÕÊý¾Ý½á¹¹ÓëËã·¨µÄÉè¼Æ·½·¨,Ìá¸ß×ÛºÏÔËÓÃËùѧµÄÀíÂÛ֪ʶºÍ·½·¨¶ÀÁ¢·ÖÎöºÍ½â¾öÎÊÌâµÄÄÜÁ¦¡£

µÚ1Ò³

±±¾©Óʵç´óѧÐÅÏ¢ÓëͨÐŹ¤³ÌѧԺ

2.1 ´æ´¢½á¹¹

½Úµã½á¹¹£º data next

´æ´¢½á¹¹£º´øÍ·½áµãºÍβ½áµãµÄµ¥Á´±í front a[0] rear a[1] a[i-1] ^ 2.2 ¹Ø¼üËã·¨·ÖÎö

±¾ÊµÑé´ÓÕûÌåÉÏ·ÖΪÆß´óÄ£¿é£º£¨1£©ÊäÈëÁªÏµÈËÐÅÏ¢£»£¨2£©Ìí¼ÓÁªÏµÈËÐÅÏ¢£»£¨3£©²éÕÒÁªÏµÈËÐÅÏ¢£»£¨4£©²é¿´ÁªÏµÈËÐÅÏ¢£»£¨5£©É¾³ýÁªÏµÈËÐÅÏ¢£»£¨6£©ÐÞ¸ÄÁªÏµÈËÐÅÏ¢£»£¨7£©Í˳öͨѶ¼¹ÜÀí¡£

ͨѶ¼ϵͳͼ ͨѶͨѶͨѶͨѶͨѶ ¼µÄ¼µÄ¼µÄ¼µÄ¼µÄ ½¨Á¢ ²åÈë ²éѯ ɾ³ý Êä³ö

2.2.1ͨѶ¼µÄ½¨Á¢ α´úÂ룺

1. ÔÚ¶ÑÖÐÉêÇëеĽáµã£» 2. нڵãµÄÊý¾ÝÓòΪa[i]£» 3. ½«Ð½ڵã¼ÓÈëµ½Á´±íÖУ» 4. ÐÞ¸ÄβָÕ룻

5. È«²¿½áµã²åÈëºóÐèÒª½«ÖÕ½á½áµãµÄÖ¸ÕëÓòÉèΪ¿Õ¡£

C++ʵÏÖ£º

ContactBook::ContactBook(DataType a[],int n)//β²å·¨ { front=new Node;

ͨѶ¼µÄ¹ÜÀí µÚ2Ò³

±±¾©Óʵç´óѧÐÅÏ¢ÓëͨÐŹ¤³ÌѧԺ

rear=new Node; rear=front; //¹¹Ôì¿Õµ¥Á´±í for(int i=0;idata=a[i]; //дÈëÊý¾ÝÓò rear->next=s; //½«Ð½ڵã¼ÓÈëµ½Á´±íÖÐ rear=s; //ÐÞ¸ÄβָÕë } rear->next=NULL; //Öն˽ڵãµÄÖ¸ÕëÓòÉèΪ¿Õ }

ʱ¼ä¸´ÔÓ¶È£ºo(n)

2.2.2ͨѶ¼µÄ²åÈë α´úÂ룺

²åÈëΪ½¨Á¢µÄÒ»ÖÖÌØÊâÐÎʽ£¬¼´²åÈëÒ»¸öµ¥¶ÀµÄ½áµã£¬·½·¨ÓëÉÏÊöÀàËÆ

C++ʵÏÖ£º

void ContactBook::Add(DataType a)//β²å·¨ { Node * s=new Node; s->data=a; rear->next=s; rear=s; rear->next=NULL; }

ʱ¼ä¸´ÔÓ¶È£ºo(1)

2.2.3°´ID²éÕÒ

²éÕÒ²Ù×÷ÊÇÖ¸Óû§ÊäÈëÒª²éÕÒµÄÓû§µÄID£¬ÏµÍ³¸Ãº¯ÊýÄÚÕÒµ½¸ÃÓû§£¬·µ»ØÓû§Êý¾ÝÓòµÄÖ¸Õ룬ÔÚÖ÷º¯ÊýÖÐÊä³ö¸ÃÓû§µÄÈ«²¿ÐÅÏ¢¡£ α´úÂ룺

1. ³õʼ»¯¹¤×÷Ö¸Õëp£»

2. Ñ­»·ÒÔϲÙ×÷Ö±µ½pΪ¿Õ»òÕÒµ½Óû§

1. Èç¹ûpµÄÊý¾ÝµÈÓÚi£¬Ôò·µ»ØPµÄÊý¾ÝÓòÖ¸Õ룻 2. PÖ¸ÕëÖ¸ÏòÏÂÒ»¸ö½Úµã£» 3.ÈôÕÒ²»µ½·µ»Ø¿ÕÖ¸Õë¡£

C++ʵÏÖ£º

//ͨѶ²¾°´ID²éÕÒ

DataType * ContactBook::Get(int i) { Node * p=front->next; while(p)

µÚ3Ò³

±±¾©Óʵç´óѧÐÅÏ¢ÓëͨÐŹ¤³ÌѧԺ

{ if(p->data.ID==i)return &(p->data); //¸ù¾ÝIDÕÒµ½±»²éÔªËØ£¬·µ»ØÎ»Öà p=p->next; } return NULL; //ÈôÕÒ²»µ½ £¬·µ»Ø¿ÕÖ¸Õë }

ʱ¼ä¸´ÔÓ¶È£ºo(n)

2.2.4ͨѶ¼µÄɾ³ý

ɾ³ý²Ù×÷ÊÇÖ¸¸ù¾ÝÓû§ÊäÈëҪɾ³ýÓû§µÄID£¬ÕÒµ½¸ÃÓû§½áµã£¬·µ»Ø¸ÃÓû§µÄÊý¾ÝÓò£¬É¾³ý´Ë½Úµã α´úÂ룺

1. ´ÓµÚÒ»¸ö½Úµã¿ªÊ¼£¬²éÕÒµ½ÒªÉ¾Óû§µÄµÄǰһ¸öÓû§½Úµã£¬ÉèPÖ¸Ïò¸Ã½Úµã£» 2. ÉèqÖ¸ÏòҪɾ³ýµÄÓû§£ºq=p->next£» 3. ÕªÁ´£ºp->next=q->next£»

4. ±£´æq½ÚµãµÄÊý¾ÝÓò:x=q->data; 5. ÊÍ·Åq½Úµã£ºdeleteq£»

ÒªÖ¸³öµÄÊÇÈôÔÚÕû¸öͨѶ¼ÕÒ²»µ½¸ÃID£¬Ö±½ÓÌø¹ýɾ³ý²½Ö裬Êä³ö²éÎÞ´ËÈË

C++ʵÏÖ£º

DataType ContactBook::Delete(int i) { Node * p=front; while(p->next) { if(p->next->data.ID==i)break; //ÕÒµ½ÒªÉ¾³ýµÄÓû§£¬Ìø³öÑ­»· p=p->next; } Node * q=p->next; //ÕÒµ½¸ÃÓû§ if(q) { p->next=q->next; DataType x=q->data; //¼Ç¼Óû§ÐÅÏ¢ delete q; //ɾ³ýÓû§ cout<<\ ɾ³ý³É¹¦£¡\ return x; } else{ cout<<\ ¸ÃÓû§²»´æÔÚ£¡\ } }

µÚ4Ò³