• <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国产精品久久久| 一级做a爰片久久毛片看看| 亚洲午夜精品久久久久久人妖| 精品久久久噜噜噜久久久| 久久精品草草草| 久久亚洲国产最新网站| 久久A级毛片免费观看| 国产精品美女久久久久AV福利| 男女久久久国产一区二区三区 | 精品久久久久久中文字幕人妻最新| 久久AV高清无码| 91久久香蕉国产熟女线看| 亚洲国产成人久久精品99| AAA级久久久精品无码片| 亚洲国产精品狼友中文久久久| 奇米影视7777久久精品| 欧美久久久久久午夜精品| 无码久久精品国产亚洲Av影片| 久久精品国产亚洲5555| 久久亚洲精品成人AV| 日韩美女18网站久久精品| 99久久精品国产免看国产一区| 免费精品久久天干天干| 久久久久久亚洲精品不卡| 99久久国产综合精品五月天喷水 | 国产高潮国产高潮久久久91 | 亚洲国产日韩欧美久久| 久久久久99精品成人片三人毛片 | 久久最近最新中文字幕大全| 亚洲av伊人久久综合密臀性色| 久久久久女教师免费一区| 国产精品成人99久久久久91gav| 精品久久久久久中文字幕| 欧美午夜精品久久久久免费视| 亚洲精品午夜国产va久久| 久久久久国产精品三级网| 91久久精品国产91性色也| 亚洲国产成人久久精品动漫| 草草久久久无码国产专区| 国内精品久久久久久久影视麻豆| 久久美女网站免费|