• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 18  文章 - 5  trackbacks - 0
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            程序設計基礎

            牛們

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            1. An exercise on lisk
            • Write a definition of LIST_ENTRY, and the insertion and deletion operations
            • Write a simple line editor
            Keep the entire text on a linked list, one line in a separate node. Start the program with entering LINEEDIT file, after which a prompt appears along with the line number. If the letter “I” is entered with a number n following it, then insert the text to be followed before line n. If “I” is not followed by a number, then insert the text before the current line. If “D” is entered with two numbers n and m, one n, or no number following it, then delete lines n through m, line n, or the current line. Do the same with the command, “L”, which stands for listing lines. If “A” is entered, then append the text to the existing lines. Entry “E” signifies exit and saving the text in a file.
            //這道題實在做不出,參考了別的同學的…… 
            #include<iostream>
            #include
            <fstream>
            using namespace std;
            ifstream fin(
            "test.txt");
            int cl=0;
            //建立LIST_ENTRY類 
            class LIST_ENTRY
            {
                
            public:
                    
            struct node
                    {
                        
            public:
                            node 
            *next;
                            
            string s0;
                            node(
            string s="")
                            {
                                s0
            =s;
                                next
            =NULL;
                            }
                    }
            *first;
                    
            int l;
                    LIST_ENTRY()
                    {
                        l
            =0;
                        first
            =NULL;
                    }
            //A命令 
                    int ins(string x,int y=cl+1)
                    {
                        
            int t=y-2;
                        node 
            *p=first,*temp=new node(x);
                        
            if (t==-1)
                        {
                            temp
            ->next=first;
                            first
            =temp;
                            l
            ++;
                            cl
            ++;
                            
            return 1;
                        }
                        
            if (p==NULL)
                        
            return 0;
                        
            while(t)
                        {
                            t
            --;
                            p
            =p->next;
                            
            if(p==NULL)
                            
            return 0;
                        }
                        temp
            ->next=p->next;
                        p
            ->next=temp;
                        
            if(y==cl+1)
                        cl
            ++;
                        
            else 
                        cl
            =y+1;
                        l
            ++;
                        
            return 1;
                    }
            //D命令 
                    int del(int x)
                    {
                        node 
            *p=first;
                        
            if (x==1)
                        {
                            
            if (first==NULL)return 0;
                            first
            =first->next;
                            l
            --;
                            delete p;
                            
            return 1;
                        }
                        
            if(p==NULL)
                        
            return 0;
                        
            while (x-2)
                        {
                            x
            --;
                            p
            =p->next;
                            
            if(p==NULL)
                            
            return 0;
                        }
                        node 
            *temp=p->next;
                        
            if (temp!=NULL)
                        {
                            p
            ->next=temp->next;
                            delete temp;
                            l
            --;
                            
            return 1;
                        }
                        
            return 0;
                    }
            //E命令 
                    int lis(int x,int y=0,node* p=NULL)
                    {
                        
            if (x==1)
                        p
            =first;
                        
            if (y==1&&x==1)
                        freopen(
            "out.txt","w",stdout);
                        
            if (p==NULL)
                        
            return 0;
                        cl
            =x;
                        
            if (!y)
                        cout
            <<cl<<'>';
                        cout
            <<p->s0<<endl;
                        
            return lis(x+1,y,p->next);
                    }
            }a;
            int chg(char* c,string &s,int &x,int &y,string &s2)
            {
                
            int i,j;
                s
            ="",s2="";
                x
            =y=cl;
                
            if (c[1]!=' '||(c[0]!='I'&&c[0]!='D'&&c[0]!='A'))
                {
                    
            for(i=0;c[i];i++)
                    s
            +=c[i];
                    
            return 0;
                }
                s
            +=c[0];
                
            if (c[0]=='A')
                {
                    
            for (i=2,j=0;c[i];i++)
                    {
                        
            if(c[i]!=' ')j=1;
                        
            if(j==1)s2+=c[i];
                    }
                    
            return 0;
                }
                
            for (i=2;c[i];i++)
                    
            if (c[i]!=' ')
                    {
                        
            for (j=0;c[i]!=' '&&c[i];i++)
                            j
            =j*10+c[i]-'0';
                        y
            =x=j;
                        
            break;
                    }
                
            if (c[0]!='D')
                
            return 0;
                
            for (;c[i];i++)
                    
            if (c[i]!=' ')
                    {
                        
            for (j=0;c[i]!=' '&&c[i];i++)
                        j
            =j*10+c[i]-'0';
                        y
            =j;
                        
            break;
                    }
                
            return 0;
            }
            int main()
            {
                
            string s,s2;
                
            int x,y,i=0,j=0,k=0;
                
            char c[1000];
                
            while(fin.getline(c,1000,10))
                {
                    
            for(i=0,s="";c[i];i++)
                        s
            +=c[i];
                    a.ins(s);
                }
                cout
            <<"LINEEDIT.txt"<<endl;
                a.lis(
            1);
                cout
            <<cl<<'>';
                
            while(cin.getline(c,1000,10))
                {
                    chg(c,s,i,j,s2);
                    
            if(s=="L")
                    {
                        k
            =0;
                        a.lis(
            1);
                        cout
            <<cl<<'>';
                        
            continue;
                    }
                    
            if(s=="A")
                    {
                        a.ins(s2);
                        cout
            <<cl<<'>';
                        
            continue;
                    }
                    
            if(s=="I")
                    {
                        k
            =2;
                        cl
            =i;
                        cout
            <<cl<<'>';
                        
            continue;
                    }
                    
            if(s=="E")
                    {
                        k
            =0;
                        a.lis(
            1,1);
                        
            return 0;
                    }
                    
            if(s=="D")
                    {
                        
            for(k=j;k>=i;k--)
                            a.del(k);
                        k
            =0;
                        cl
            =a.l;
                        cout
            <<cl<<'>';
                        
            continue;
                    }
                    
            if(k==2)
                        a.ins(s,cl);
                    cout
            <<cl<<'>';
                }
                system(
            "pause");
                
            return 0;
            }
            2. An exercise on queue
            • Write a queue using a doubly linked list
            • Simulate a command-dispatching system
            – It can accept user?s commands (from „a? – „j?)
            – These commands will take 1~10s, respectively
            – The user commands will be enqueued if the program can not finish the previous commands
            – The program will quit if user inputs command „q?
            • Hints:
            – Use “_kbhit()” to determine whether user inputs a command
            – Use “Sleep(1000)” to simulate the 1-second processing
            • Add #include “Windows
            posted on 2010-11-01 08:28 jyy 閱讀(136) 評論(0)  編輯 收藏 引用 所屬分類: OJ平臺
            人人狠狠综合久久亚洲88| 狠狠人妻久久久久久综合蜜桃| 开心久久婷婷综合中文字幕| 一本大道加勒比久久综合| 久久久精品无码专区不卡| 人妻无码精品久久亚瑟影视| 99国产欧美精品久久久蜜芽| 国内精品伊人久久久久影院对白| 波多野结衣久久精品| 亚洲天堂久久精品| 国色天香久久久久久久小说| 狠狠久久亚洲欧美专区| 伊人久久无码精品中文字幕| 久久青青草原综合伊人| 久久天天躁夜夜躁狠狠| 久久福利片| 久久精品国产99国产电影网| 精品久久久中文字幕人妻| 久久99精品国产麻豆婷婷| 精品久久久久久久无码| 久久精品人人做人人爽电影| 精品国产乱码久久久久久浪潮| 72种姿势欧美久久久久大黄蕉| 久久综合亚洲色HEZYO社区| 狠狠久久综合| 国产精品九九久久精品女同亚洲欧美日韩综合区| 日韩亚洲国产综合久久久| 很黄很污的网站久久mimi色| 88久久精品无码一区二区毛片| 久久99热只有频精品8| 久久人人爽人人爽人人片AV不| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久精品免费全国观看国产| 精品国产91久久久久久久a| 久久99精品国产99久久| 久久精品国产亚洲AV大全| 久久久久亚洲av无码专区喷水| 久久婷婷五月综合97色直播| 久久精品国产亚洲AV蜜臀色欲| 亚洲国产成人精品91久久久 | 7777精品伊人久久久大香线蕉|