PTA(数据结构)- jmu-ds-单链表的基本运算
来源:互联网 发布:angular tooltips.js 编辑:程序博客网 时间:2024/06/04 08:58
实现单链表的基本运算:初始化、插入、删除、求表的长度、判空、释放。
(1)初始化单链表L,输出L->next的值;
(2)依次采用尾插法插入元素:输入分两行数据,第一行是尾插法需要插入的字符数据的个数,第二行是具体插入的字符数据。
(3)输出单链表L;
(4)输出单链表L的长度;
(5)判断单链表L是否为空;
(6)输出单链表L的第3个元素;
(7)输出元素a的位置;
(8)在第4个元素位置上插入‘x’元素;
(9)输出单链表L;
(10)删除L的第3个元素;
(11)输出单链表L;
(12)释放单链表L。
输入格式:
两行数据,第一行是尾插法需要插入的字符数据的个数,第二行是具体插入的字符数据。
输出格式:
按照题目要求输出
输入样例:
5
a b c d e
输出样例:
0
a b c d e
5
no
c
1
a b c x d e
a b x d e
Code:
#include<stdio.h>#include<malloc.h>#include<stdlib.h>//函数状态码定义#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef char ElemType; //假设线性表中的元素均为整型typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;void LinkList_init(LinkList &L){ L = (LNode*)malloc(sizeof(LNode)); L -> next = NULL;}void LinkList_Create(LinkList &L,int n,int &length){ LNode *rearPtr,*curPtr; rearPtr = L; length = 0; for(int i = 0;i < n;i++){ curPtr = (LNode*)malloc(sizeof(LNode)); if(!curPtr)exit(OVERFLOW); getchar(); scanf("%c",&curPtr->data); curPtr -> next = NULL; rearPtr -> next = curPtr; rearPtr = curPtr; length++; }}void LinkList_Print(LinkList &L){ LNode *p = L -> next; while(p != NULL){ if(p -> next != NULL) printf("%c ",p -> data); else printf("%c\n",p -> data); p = p -> next; }}void LinkList_Print_3rd(LinkList &L){ LNode *p = L; for(int i = 0;i < 3;i++){ p = p -> next; } printf("%c\n",p -> data);}void LinkList_Print_a_Pos(LinkList &L){ LNode *p = L -> next; int pos = 1; while(p != NULL){ if(p -> data == 'a'){ printf("%d\n",pos); p = p -> next; } else p = p -> next; pos++; }}void LinkList_Insert_x(LinkList &L){ LNode *p = L; LNode *q; q=(LNode*)malloc(sizeof(LNode)); for(int i = 1;i < 4;i++) p = p -> next; q -> data = 'x'; q -> next = p -> next; p -> next = q;}void LinkList_Delete_3rd(LinkList &L){ LNode *p = L; for(int i = 1;i < 3;i++) p = p -> next; p -> next = p -> next -> next;}int main(){ LinkList L; int N,length=0; scanf("%d",&N); LinkList_init(L); LinkList_Create(L,N,length); LinkList_Print(L); printf("%d\n",length ); LinkList_Print_3rd(L); LinkList_Print_a_Pos(L); LinkList_Insert_x(L); LinkList_Print(L); LinkList_Delete_3rd(L); LinkList_Print(L); free(L);}
阅读全文
0 0
- PTA(数据结构)- jmu-ds-单链表的基本运算
- PTA 7-3 jmu-ds-单链表的基本运算
- jmu-ds-单链表的基本运算
- jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算(15 分)
- 4-1 jmu-ds-集合的并交差运算(15 分)
- [数据结构]-- PTA一元多项式的乘法与加法运算
- [数据结构]-- PTA一元多项式的乘法与加法运算
- PTA(数据结构)-带头结点的单链表就地逆置
- 4-2 jmu-ds-顺序表区间元素删除(15 分)
- 4-2 jmu-ds-顺序表区间元素删除(15 分)
- 【数据结构】单链表上的基本运算
- DS(数据结构)复习
- 数据结构(三)栈1:栈的基本运算
- 数据结构---多项式的乘积与和(PTA)
- Android实现后台播放音乐(Service方式)
- Capstone训练营4
- JAVA数组
- mac osx up brew xcrun: error: invalid active developer path
- poj 3255 Roadblocks (SPFA)
- PTA(数据结构)- jmu-ds-单链表的基本运算
- 分布式的句子和文件表示
- Qt图表eCharts
- JavaSE——反射笔记
- Unity3D 2017 Mac 编译 Android
- 访问类型
- El和JSTL
- 领先的H5、WebGL和WebVR作品分享平台,以虚拟魔力升华真实体验。
- Linux IO复用--select()和poll()