head=p->next; p->next=0;
if (p->data>='A' && p->data<='Z') {p->next=ha; ha=p;}
else if (p->data>='0' && p->data<='9') {p->next=hb; hb=p;} else {p->next=hc; hc=p;} } }
2. Éè¼ÆÔÚÁ´Ê½´æ´¢½á¹¹ÉϽ»»»¶þ²æÊ÷ÖÐËùÓнáµã×óÓÒ×ÓÊ÷µÄËã·¨¡£
typedef struct node {int data; struct node *lchild,*rchild;} bitree; void swapbitree(bitree *bt) {
bitree *p; if(bt==0) return;
swapbitree(bt->lchild); swapbitree(bt->rchild); p=bt->lchild; bt->lchild=bt->rchild; bt->rchild=p; }
3. ÔÚÁ´Ê½´æ´¢½á¹¹ÉϽ¨Á¢Ò»¿Ã¶þ²æÅÅÐòÊ÷¡£
#define n 10
typedef struct node{int key; struct node *lchild,*rchild;}bitree; void bstinsert(bitree *&bt,int key) {
if (bt==0){bt=(bitree *)malloc(sizeof(bitree)); bt->key=key;bt->lchild=bt->rchild=0;} else if (bt->key>key) bstinsert(bt->lchild,key); else bstinsert(bt->rchild,key); }
void createbsttree(bitree *&bt) { int i;
for(i=1;i<=n;i++) bstinsert(bt,random(100)); }
45
Êý¾Ý½á¹¹ÊÔ¾í£¨Î壩²Î¿¼´ð°¸
Ò»¡¢Ñ¡ÔñÌâ 1£®A 6£®B
¶þ¡¢Ìî¿ÕÌâ 1. top1+1=top2
2. ¿ÉÒÔËæ»ú·ÃÎʵ½ÈÎÒ»¸ö¶¥µãµÄ¼òµ¥Á´±í 3. i(i+1)/2+j-1 4. FILO£¬FIFO
5. ABDECF£¬DBEAFC£¬DEBFCA 6. 8£¬64 7. ³ö¶È£¬Èë¶È 8. ki<=k2i && ki<=k2i+1 9. n-i£¬r[j+1]=r[j]
10. mid=(low+high)/2£¬r[mid].key>k
Èý¡¢Ó¦ÓÃÌâ 2. DEBCA
3. E={(1,5),(5,2),(5,3),(3,4)},W=10 4. ASL=(1*1+2*2+3*4)/7=17/7 5. ASL1=7/6£¬ASL2=4/3 ËÄ¡¢Ëã·¨Éè¼ÆÌâ
1. Éè¼ÆÅжÏÁ½¸ö¶þ²æÊ÷ÊÇ·ñÏàͬµÄËã·¨¡£
typedef struct node {datatype data; struct node *lchild,*rchild;} bitree; int judgebitree(bitree *bt1,bitree *bt2) {
if (bt1==0 && bt2==0) return(1);
else if (bt1==0 || bt2==0 ||bt1->data!=bt2->data) return(0);
46
2£®B 7£®B
3£®A 8£®B
4£®A 9£®C
5£®D 10£®C
else return(judgebitree(bt1->lchild,bt2->lchild)*judgebitree(bt1->rchild,bt2->rchild)); }
2. Éè¼ÆÁ½¸öÓÐÐòµ¥Á´±íµÄºÏ²¢ÅÅÐòËã·¨¡£
void mergelklist(lklist *ha,lklist *hb,lklist *&hc) {
lklist *s=hc=0; while(ha!=0 && hb!=0)
if(ha->data
Êý¾Ý½á¹¹ÊÔ¾í£¨Áù£©²Î¿¼´ð°¸
Ò»¡¢Ñ¡ÔñÌâ 1£®D 6£®D
2£®A 7£®B
3£®A 8£®A
4£®A 9£®C
5£®D 10£®B
11£®C 12£®A 13£®B 14£®D 15£®B
¶þ¡¢ÅжÏÌâ
1£®´í 2£®¶Ô 3£®¶Ô 4£®¶Ô 5£®´í 6£®´í 7£®¶Ô 8£®´í 9£®¶Ô 10£®¶Ô
Èý¡¢Ìî¿ÕÌâ 1. O(n)
2. s->next=p->next; p->next=s
47
3. (1£¬3£¬2£¬4£¬5) 4. n-1 5. 129 6. F==R
7. p->lchild==0&&p->rchild==0 8. O(n2)
9. O(nlog2n)£¬ O(n) 10. ¿ª·Å¶¨Ö··¨£¬Á´µØÖ··¨
ËÄ¡¢Ëã·¨Éè¼ÆÌâ
1. Éè¼ÆÔÚ˳ÐòÓÐÐò±íÖÐʵÏÖ¶þ·Ö²éÕÒµÄËã·¨¡£
struct record {int key; int others;}; int bisearch(struct record r[ ], int k) {
int low=0,mid,high=n-1; while(low<=high) {
mid=(low+high)/2;
if(r[mid].key==k) return(mid+1); else if(r[mid].key>k) high=mid-1; else low=mid+1; } return(0); }
2. Éè¼ÆÅж϶þ²æÊ÷ÊÇ·ñΪ¶þ²æÅÅÐòÊ÷µÄËã·¨¡£ int minnum=-32768,flag=1;
typedef struct node{int key; struct node *lchild,*rchild;}bitree; void inorder(bitree *bt) { if
(bt!=0)
{inorder(bt->lchild);
if(minnum>bt->key)flag=0;
minnum=bt->key;inorder(bt->rchild);} }
48