µÚ 3 Õ ÏßÐÔ±íµÄÁ´Ê½´æ´¢
3.1 Ñ¡ÔñÌâ
£¨1£©Á½¸öÓÐÐòÏßÐÔ±í·Ö±ð¾ßÓÐ n ¸öÔªËØÓë m ¸öÔªËØÇÒ n¡Üm£¬ÏÖ½«Æä¹é²¢³ÉÒ»¸öÓÐÐò±í£¬
Æä×îÉٵıȽϴÎÊýÊÇ£¨ A £©¡£
A£®n B£®m C£®n ? 1 D£®m + n £¨2£©·Ç¿ÕµÄÑ»·µ¥Á´±í head µÄβ½áµã£¨ÓÉ p ËùÖ¸Ïò£©Âú×㣨 C £©¡£
A£®p->next==NULL B£®p==NULL C£®p->next==head D£®p==head £¨3£©ÔÚ´øÍ·½áµãµÄµ¥Á´±íÖвéÕÒ x ӦѡÔñµÄ³ÌÐòÌåÊÇ£¨ C £©¡£
A£®node *p=head->next; while (p && p->info!=x) p=p->next;
if (p->info==x) return p else return NULL;
B£®node *p=head; while (p&& p->info!=x) p=p->next; return p; C£®node *p=head->next; while (p&&p->info!=x) p=p->next; return p; D£®node *p=head; while (p->info!=x) p=p->next ; return p; £¨4£©ÏßÐÔ±íÈô²ÉÓÃÁ´Ê½´æ´¢½á¹¹Ê±£¬ÒªÇó´æÖпÉÓô洢µ¥ÔªµÄµØÖ·£¨ D £©¡£
A£®±ØÐëÊÇÁ¬ÐøµÄ B£®²¿·ÖµØÖ·±ØÐëÊÇÁ¬ÐøµÄ C£®Ò»¶¨ÊDz»Á¬ÐøµÄ D£®Á¬Ðø²»Á¬Ðø¶¼¿ÉÒÔ
£¨5£©ÔÚÒ»¸ö¾ßÓÐ n ¸ö½áµãµÄÓÐÐòµ¥Á´±íÖвåÈëÒ»¸öнáµã²¢±£³Öµ¥Á´±íÈÔÈ»ÓÐÐòµÄʱ¼ä ¸´ÔÓ¶ÈÊÇ£¨ B £©¡£
A£®O(1) B£®O(n) C£®O(n) D£®O(nlogn)
£¨6£©Óò»´øÍ·½áµãµÄµ¥Á´±í´æ´¢¶ÓÁÐʱ£¬Æä¶ÓÍ·Ö¸ÕëÖ¸Ïò¶ÓÍ·½áµã£¬Æä¶ÓβָÕëÖ¸Ïò¶Ó β½áµã£¬ÔòÔÚ½øÐÐɾ³ý²Ù×÷ʱ£¨ D £©¡£
A£®½öÐ޸ĶÓÍ·Ö¸Õë B£®½öÐ޸ĶÓβָÕë C£®¶ÓÍ·¡¢¶ÓβָÕë¶¼ÒªÐÞ¸Ä D£®¶ÓÍ·,¶ÓβָÕë¶¼¿ÉÄÜÒªÐÞ¸Ä £¨7£©Èô´Ó¼üÅÌÊäÈë n ¸öÔªËØ£¬Ôò½¨Á¢Ò»¸öÓÐÐòµ¥ÏòÁ´±íµÄʱ¼ä¸´ÔÓ¶ÈΪ£¨ B £©¡£
A£®O(n) B£®O(n) C£®O(n) D£®O(n ¡Á log2)
£¨8£©ÏÂÃæÄĸöÊõÓïÓëÊý¾ÝµÄ´æ´¢½á¹¹Î޹أ¨ D £©¡£
D£®¶ÓÁÐ A£®Ë³Ðò±í B£®Á´±í C£®É¢Áбí
£¨9£©ÔÚÒ»¸öµ¥Á´±íÖУ¬Èôɾ³ý p ËùÖ¸½áµãµÄºóÐø½áµã£¬ÔòÖ´ÐУ¨ A £©¡£
A£®p->next=p->next->next; B£®p=p->next; p->next=p->next->next; C£®p->next=p->next; D£®p =p->next->next;
£¨10£©ÔÚÒ»¸öµ¥Á´±íÖУ¬Èô p ËùÖ¸½áµã²»ÊÇ×îºó½áµã£¬ÔÚ p Ö®ºó²åÈë s ËùÖ¸½áµã£¬ÔòÖ´ÐУ¨ B £©¡£
A£®s->next=p;p->next=s; B£®s->next=p->next;p->next=s; C£®s->next=p->next;p=s; D£®p->next=s;s->next=p;
3.2 Éè¼ÆÒ»¸öËã·¨£¬ÇóÒ»¸öµ¥Á´±íÖеĽáµã¸öÊý¡£
¡¾´ð¡¿£ºµ¥Á´±í´æ´¢½á¹¹¶¨ÒåÈçÏ£¨Ïà¹ØÎļþ£ºlinklist.h£© #include
2
2
2
3
n 11
#include
struct node *next; }linknode;
typedef linknode *linklist;
/*β²å·¨´´½¨´øÍ·½áµãµÄµ¥Á´±í*/ linklist creatlinklist() { linklist head,r,x,s;
head=r=(linklist)malloc(sizeof(linknode));
printf(\ÇëÊäÈëÒ»×éÒÔ 0 ½áÊøµÄÕûÊýÐòÁУº\\n\ scanf(\ while (x)
{ s=(linklist)malloc(sizeof(linknode)); s->data=x; r->next=s; r=s;
scanf(\
}
r->next=NULL; return head; }
/*Êä³ö´øÍ·½áµãµÄµ¥Á´±í*/ void print(linklist head) { linklist p;
p=head->next; printf(\ while(p)
{ printf(\ p=p->next;
}
printf(\}
»ùÓÚÉÏÊö½á¹¹¶¨Ò壬Çóµ¥Á´±íÖеĽáµã¸öÊýµÄËã·¨³ÌÐòÈçÏ£ºint count(linklist head) { int c=0;
linklist p=head; while (p) {c++;
12
p=p->next;
}
return c; }
3.3 Éè¼ÆÒ»¸öËã·¨£¬ÇóÒ»¸ö´øÍ·½áµãµ¥Á´±íÖеĽáµã¸öÊý¡£
¡¾´ð¡¿£º´øÍ·½áµãµÄµ¥Á´±íµÄ´æ´¢½á¹¹¶¨ÒåͬÌâ 3.2£¬ÊµÏÖ±¾Ì⹦ÄܵÄËã·¨³ÌÐòÈçÏ£¨3_3.c£© #include \ int count(linklist head) { int c=0;
linklist p=head->next; while (p) {c++; p=p->next;
}
return c; }
main() /*²âÊÔº¯Êý*/ {linklist head;
head=creatlinklist(); print(head);
printf(\ getch(); }
µ±ÊäÈë 5 ¸öÊý¾Ýʱ£¬²úÉúµÄÊä³ö½á¹ûÈçÏÂͼËùʾ£º
3.4 Éè¼ÆÒ»¸öËã·¨£¬ÔÚÒ»¸öµ¥Á´±íÖÐֵΪ y µÄ½áµãÇ°Ãæ²åÈëÒ»¸öֵΪ x µÄ½áµã¡£¼´Ê¹ÖµÎª x µÄ
нáµã³ÉΪֵΪ y µÄ½áµãµÄǰÇý½áµã¡£ ¡¾´ð¡¿£º
#include \
void insert(linklist head,int y,int x)
{/*ÔÚֵΪ y µÄ½áµãǰ²åÈëÒ»¸öֵΪ x µÄ½áµã*/ linklist pre,p,s; pre=head;
p=head->next;
13
while (p && p->data!=y) { pre=p;
p=p->next; }
if (p)/*ÕÒµ½ÁËֵΪ y µÄ½áµã*/
{ s=(linklist)malloc(sizeof(linknode)); s->data=x; s->next=p; pre->next=s; } }
void main() /*²âÊÔ³ÌÐò*/ {linklist head; int y,x;
head=creatlinklist(); /*´´½¨µ¥Á´±í*/
print(head); /*Êä³öµ¥Á´±í*/
printf(\ÇëÊäÈë y Óë x µÄÖµ:\\n\ scanf(\ insert(head,y,x); print(head); }
³ÌÐòµÄÒ»ÖÖÔËÐнá¹ûÈçÏÂͼËùʾ£º
3.5 Éè¼ÆÒ»¸öËã·¨£¬ÅжÏÒ»¸öµ¥Á´±íÖи÷¸ö½áµãÖµÊÇ·ñÓÐÐò¡£ ¡¾´ð¡¿£º
#include \
int issorted(linklist head,char c)
/*µ±²ÎÊý c=¡¯a¡¯Ê±ÅжÏÁ´±íÊÇ·ñΪÉýÐò£¬µ±²ÎÊý c=¡¯d¡¯ÊÇÅжÏÁ´±íÊÇ·ñΪ½µÐò*/ { int flag=1;
linklist p=head->next; switch (c)
{case 'a':/*ÅжϴøÍ·½áµãµÄµ¥Á´±í head ÊÇ·ñΪÉýÐò*/
14

