• <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年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            程序設(shè)計(jì)基礎(chǔ)

            牛們

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            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.
            //這道題實(shí)在做不出,參考了別的同學(xué)的…… 
            #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 閱讀(145) 評論(0)  編輯 收藏 引用 所屬分類: OJ平臺(tái)
            一本色道久久99一综合| 奇米综合四色77777久久| 久久人人爽人人爽AV片| 久久夜色精品国产亚洲| 99久久无色码中文字幕| 日韩久久久久中文字幕人妻 | 久久精品国产亚洲7777| 国产69精品久久久久久人妻精品| 久久精品无码专区免费青青| 久久伊人中文无码| 国产精品国色综合久久| 噜噜噜色噜噜噜久久| 亚洲天堂久久精品| 99精品国产在热久久无毒不卡| 一级a性色生活片久久无| 国产高潮国产高潮久久久91| 日产精品99久久久久久| 久久热这里只有精品在线观看| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 人人狠狠综合久久88成人| 精品一久久香蕉国产线看播放| 无码人妻久久一区二区三区免费| 久久久人妻精品无码一区| 99久久国产亚洲高清观看2024| 国产精品久久久久AV福利动漫| 亚洲va久久久噜噜噜久久| 狠狠色丁香久久婷婷综合图片| 久久精品免费网站网| 国产精品亚洲综合专区片高清久久久 | 久久99热这里只有精品国产| 久久―日本道色综合久久| 99久久无码一区人妻a黑| 亚洲日本va中文字幕久久| 波多野结衣AV无码久久一区| 久久精品无码一区二区WWW| 国产成人无码精品久久久性色 | 久久夜色精品国产欧美乱| 婷婷久久久亚洲欧洲日产国码AV| 久久香综合精品久久伊人| 久久人人爽人人爽人人AV东京热| 成人久久综合网|