• <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 閱讀(135) 評論(0)  編輯 收藏 引用 所屬分類: OJ平臺
            国产福利电影一区二区三区久久久久成人精品综合 | 99久久国产免费福利| 国产精品久久久久aaaa| 精品久久久无码中文字幕天天| 久久久久香蕉视频| 伊人久久大香线蕉av一区| 韩国无遮挡三级久久| 要久久爱在线免费观看| 久久久久中文字幕| 久久无码中文字幕东京热| 国产精品禁18久久久夂久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 亚洲乱码精品久久久久..| 久久99精品国产麻豆宅宅| 2021国内精品久久久久久影院| 日本久久久久久中文字幕| 色妞色综合久久夜夜| 久久精品国产欧美日韩| 久久99精品综合国产首页| 午夜精品久久久久久毛片| 欧美日韩精品久久久久| 国产精品成人99久久久久91gav | 久久99国产精品一区二区| 久久AV无码精品人妻糸列| 三级韩国一区久久二区综合| 色综合色天天久久婷婷基地| 久久婷婷五月综合国产尤物app| 香蕉久久永久视频| 蜜桃麻豆www久久国产精品| 久久久青草久久久青草| 99久久成人国产精品免费| 日韩精品久久久肉伦网站 | 亚洲欧洲中文日韩久久AV乱码| 99久久精品国产一区二区| 久久精品国产免费| 久久精品国产亚洲麻豆| 狠狠色丁香久久婷婷综| 久久久久免费精品国产| 国产叼嘿久久精品久久| 久久一区二区三区免费| 久久人与动人物a级毛片|