Problem D: 鏈表的基本運算(線性表)

Problem D: 鏈表的基本運算(線性表)

Time Limit: 1 Sec??Memory Limit: 128 MB
Submit: 18??Solved: 10

Description

編寫一個程序,實現鏈表的各種基本運算(假設順序表的元素類型為char),主函數已給出,請補充每一種方法。

?

1、初始化單鏈表L;

2、采用尾插法依次插入元素a,b,c,d,e;

3、輸出單鏈表L;

4、輸出單鏈表L的長度;

5、判斷單鏈表L是否為空;

6、輸出單鏈表L的第三個元素;

7、輸出元素a的位置;

8、在第四個元素位置插入元素f;

9、輸出單鏈表L;

10、刪除L的第三個元素;

11、輸出單鏈表L;

12、釋放單鏈表L;

????

數據元素類型定義為
typedef char ElemType;

?

順序表的定義為

typedef struct Node
{
ElemType data;
struct Node *next;
} SqList;
主函數:

int main()
{
??? SqList *L;
??? InitList(L);??????????????????????????? //初始化單鏈表
??? ElemType a,b,c,d,e;
??? scanf("%c %c %c %c %c%*c",&a,&b,&c,&d,&e);
??? Insert(L,a);
??? Insert(L,b);
??? Insert(L,c);
??? Insert(L,d);
??? Insert(L,e);??????????????????????????? //使用尾插法插入元素a,b,c,d,e
??? Print(L);?????????????????????????????? //輸出單鏈表
??? PrintLength(L);???????????????????????? //輸出單鏈表長度
??? if(SqNull(L))
??????? printf("單鏈表不為空\n");
??? else printf("單鏈表為空\n");??????????? //判斷單鏈表是否為空
??? PrintData(L,3);???????????????????????? //輸出第三個元素
??? printf("元素a的位置:%d\n",Find(L,a));? //輸出元素a的位置
??? ElemType f;
??? scanf("%c",&f);
??? Insertinto(L,4,f);????????????????????? //將f插入到第四個位置
??? Print(L);?????????????????????????????? //輸出單鏈表
??? Delete(L,3);??????????????????????????? //刪除第三個元素
??? Print(L);?????????????????????????????? //輸出單鏈表
??? free(L);??????????????????????????????? //釋放內存
??? return 0;
}

Input

第一行輸入五個元素a,b,c,d,e;接下來輸入元素f;請根據題目編寫算法。

Output

Sample Input

1 2 3 4 5
6

Sample Output

1 2 3 4 5
5
單鏈表不為空
3
元素a的位置:1
1 2 3 6 4 5
1 2 6 4 5

HINT

請使用C++編譯并提交

#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef struct Node
{ElemType data;struct Node *next;
} SqList;
void InitList(SqList *&L)
{L=(SqList*)malloc(sizeof(SqList));L->next=NULL;
}
void Insert(SqList *&L,ElemType n)
{SqList *p=L,*q;while(p->next!=NULL)p=p->next;q=p;p=(SqList*)malloc(sizeof(SqList));q->next=p;p->data=n;p->next=NULL;
}
void Print(SqList *L)
{SqList *p=L->next;while(p->next!=NULL){printf("%c ",p->data);p=p->next;}printf("%c\n",p->data);
}
void PrintLength(SqList *L)
{int i=0;SqList *p=L->next;while(p!=NULL){i++;p=p->next;}printf("%d\n",i);
}
bool SqNull(SqList *L)
{SqList *p=L->next;if(L->next!=NULL)return true;else return false;
}
void PrintData(SqList *L,int n)
{SqList *p=L->next;int i;for(i=0; i<n-1&&p->next!=NULL; i++)p=p->next;printf("%c\n",p->data);
}
int Find(SqList *L,ElemType a)
{SqList *p=L->next;for(int i=0; p!=NULL; i++)if(p->data==a)return i+1;return 0;
}
void Insertinto(SqList *&L,int n,ElemType f)
{SqList *p=L->next,*q;for(int i=1; p!=NULL; i++){if(i==n-1){q=(SqList*)malloc(sizeof(SqList));q->data=f;q->next=p->next;p->next=q;}p=p->next;}
}
void Delete(SqList *&L,int n)
{SqList *p=L->next,*q;for(int i=1; p!=NULL; i++){if(i==n-1){q=p->next;p->next=p->next->next;free(q);}p=p->next;}
}
int main()
{SqList *L;InitList(L);                            //初始化單鏈表ElemType a,b,c,d,e;scanf("%c %c %c %c %c%*c",&a,&b,&c,&d,&e);Insert(L,a);Insert(L,b);Insert(L,c);Insert(L,d);Insert(L,e);                            //使用尾插法插入元素a,b,c,d,ePrint(L);                               //輸出單鏈表PrintLength(L);                         //輸出單鏈表長度if(SqNull(L))printf("單鏈表不為空\n");else printf("單鏈表為空\n");            //判斷單鏈表是否為空PrintData(L,3);                         //輸出第三個元素printf("元素a的位置:%d\n",Find(L,a));  //輸出元素a的位置ElemType f;scanf("%c",&f);Insertinto(L,4,f);                      //將f插入到第四個位置Print(L);                               //輸出單鏈表Delete(L,3);                            //刪除第三個元素Print(L);                               //輸出單鏈表free(L);                                //釋放內存return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536213.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536213.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536213.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Problem B: 結構體---職工信息結構體

Problem B: 結構體---職工信息結構體 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 504 Solved: 306編寫程序&#xff0c;定義一個存放職工信息的結構體類型&#xff0c;職工信息包括職工姓名、工作年限、工資總額。初始化5名職工的信息&#xff0c;對工作年限超過30年的…

Problem C: 結構體---點坐標結構體

Problem C: 結構體---點坐標結構體 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 663 Solved: 444[Submit][Status][Web Board]Description 定義一個表示點坐標的結構體&#xff0c;輸入兩個點的坐標&#xff0c;輸出這兩個點中點的坐標 Input 第一個點的坐標&#xff08…

Problem D: 編程題B-向量的數量積

Problem D: 編程題B-向量的數量積 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 164 Solved: 148Description 已知兩個非零向量a&#xff08;x1&#xff0c;y1&#xff09;&#xff0c;b&#xff08;x2&#xff0c;y2&#xff09;&#xff0c;則有abx1x2y1y2&#xff0c;…

Problem E: 高于均分的學生

Problem E: 高于均分的學生 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 45Description 輸入n(<100)個學生的姓名、學號和成績&#xff0c;將其中高于平均成績的姓名、學號和成績輸出。 Input 第一行為學生人數 n 第二行到第n1行&#xff0c;每行一個學生…

Problem E: 建立鏈表(線性表)

Problem E: 建立鏈表(線性表) Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 323 Solved: 207Description &#xff08;線性表&#xff09;設鍵盤輸入n個英語單詞&#xff0c;輸入格式為n, w1, w2, …,wn,其中n表示隨后輸入英語單詞個數&#xff0c;試編一程序&#xff0c…

Problem A: 判斷操作是否合法(棧和隊列)

Problem A: 判斷操作是否合法&#xff08;棧和隊列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 22Description 假設以I和O分別表示進棧和出棧操作&#xff0c;棧的初態和終態均為空&#xff0c;進棧和出棧的操作序列可表示為僅由I和O組成的序列…

Problem G: 函數---判斷日期(年月日)是否合法

Problem G: 函數---判斷日期&#xff08;年月日&#xff09;是否合法 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 566 Solved: 240Description 編寫函數isValid_date&#xff0c;函數聲明如下: int isValid_date(int year,int month,int day); //判斷日期&#xff08;年…

Problem H: 今年第幾天?

Problem H: 今年第幾天&#xff1f; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 723 Solved: 310Description 定義一個函數&#xff0c;其參數為年、月、日的值&#xff0c;返回這一天為該年的第幾天。要求在main函數中輸入年月日&#xff0c;然后調用這個函數求值&…

Problem I: 函數---判斷某年某月某日是這一年中的第幾天

Problem I: 函數---判斷某年某月某日是這一年中的第幾天 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 457 Solved: 194Description 在主程序(main)中輸入某年某月某日&#xff0c;例如2012 9 18(年月日之間用空格隔開)&#xff0c; 調用函數dayth來得到某年某月某日是這…

Problem C: 括號匹配(棧和隊列)

Problem C: 括號匹配&#xff08;棧和隊列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 76 Solved: 18[Submit][Status][Web Board]Description 假設一個表達式中只允許包含三種括號&#xff1a;圓括號“(”和“)”&#xff0c;方括號“[”和“]”和花括號“…

Problem D: 棧的基本運算(棧和隊列)

Problem D: 棧的基本運算&#xff08;棧和隊列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 15[Submit][Status][Web Board]Description 編寫一個程序&#xff0c;實現順序棧的各種基本運算&#xff0c;主函數已給出&#xff0c;請補充每一種方法…

Problem B: C語言習題 矩陣元素變換

Problem B: C語言習題 矩陣元素變換 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 942 Solved: 558[Submit][Status][Web Board]Description 將一個nn(2<n<10,n為奇數)的矩陣中最大的元素放在中心&#xff0c;4個角分別放4個最小的元素&#xff08;按從左到右、從上…

Problem D: 刪出多余的空格

Problem D: 刪出多余的空格 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 667 Solved: 308[Submit][Status][Web Board]Description 小平在給弟弟檢查英語作業時時&#xff0c;發現每個英語句子單詞之間的空格個數不等&#xff0c;請你編程幫他把句子中多余的空格去掉&am…

Problem D: 順序串的基本運算

Problem D: 順序串的基本運算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 28[Submit][Status][Web Board]Description 編寫一個程序&#xff0c;實現順序串的各種基本運算&#xff0c;主函數已給出&#xff0c;請補充每一種方法。 1、建立串s"abcdefgh…

骨牌鋪方格

骨牌鋪方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46495 Accepted Submission(s): 22470 Problem Description在2n的一個長方形方格中,用一個1 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.例如n3時…

遞歸思想完成n皇后問題

已經很長時間不敲代碼了&#xff0c;感覺自己越來與頹廢&#xff0c;所以現在又想做回一名苦逼的程序員&#xff0c;開啟自己的代碼之路。 我是根據視頻敲的&#xff0c;沒有題目&#xff0c;先看個四皇后問題吧。 所謂4皇后問題就是求解如何在44的棋盤上無沖突的擺放4個皇后棋…

POJ1163 數字三角形

1.題目信息&#xff08;http://poj.org/problem?id1163&#xff09; The TriangleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30397 Accepted: 17973 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number tri…

virtualbox的USB識別

VirtualBox識別USB教程 作者&#xff1a;Vincent June 13, 2017 在Virtualbox虛擬機配置面板中打開USB設備選項&#xff0c;分別勾選上“啟動USB控制器”“啟用usb2.0控制器”選項&#xff0c;如果有錯誤去https://www.virtualbox.org/wiki/Downloads 下載相應版本的插件包&a…

ubuntu實現簡單的劃詞工具

ubuntu實現簡單的劃詞工具 由于ubuntu下面沒有比較好用的劃詞翻譯工具&#xff0c;而且本人比較喜歡有道詞典&#xff0c;雖然ubuntu下有deepin版本的有道詞典包&#xff0c;可是總是會有bug&#xff0c;卡死等等。所以自己參考別人寫了一個小工具&#xff0c;涉及shell和pyth…

動態規劃進階題目之滑雪

Problem F: 動態規劃進階題目之滑雪 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 4 Solved: 3[Submit][Status][Web Board]Description Michael喜歡滑雪百這并不奇怪&#xff0c; 因為滑雪的確很刺激。可是為了獲得速度&#xff0c;滑的區域必須向下傾斜&#xff0c;而且當…