//单???链???表???
#include <iostream>
using namespace std; typedef char datatype;
typedef struct node{
datatype data;
struct node* next;
}listnode;
typedef listnode* linklist;
listnode *p; //建??立???链???表???
linklist createlist()
{
linklist head = (listnode*)malloc( sizeof(listnode));
listnode *p,*r;
r = head;
char ch;
while((ch=getchar())!='\n' )
{
p = (listnode*)malloc( sizeof(listnode));
if(p==NULL)
return NULL;
p->data = ch;
r->next = p;
r = p;
}
r->next = NULL;
return(head);
} //查??找??单???链???表???
linklist getnode(linklist head , int i)
{
int j;
listnode* p;
p = head;
j = ;
while(p->next && j<i)
{
p = p->next;
j++;
}
if(i==j)
return p;
else
return NULL;
} //打???印??输??出?链???表???内??容?Y
void printlist(linklist head)
{
listnode* p = head;
while(p->next)
{
cout<<p->next->data<<endl;
p = p->next;
}
}
//插?入??
void insertlist(linklist head,datatype m,int i)
{
listnode* p = getnode(head,i);
listnode* s = (listnode*)malloc( sizeof(listnode));
s->data = m;
if(p!=NULL)
{
s->next = p->next;
p->next = s;
}
}
//删??除y一??个?结??点??,删??除y第???i个?后??面?的??那?个?
void deletelistnode(linklist head,int i)
{
int j = ;
listnode *p,*r;
p = head;
while(p&&j<i)
{
p = p->next;
j++;
}
if(p==NULL)
exit(); r = p->next;
p->next = r->next;
free(r); }
int main()
{
linklist mylist = createlist();
// listnode * tmp = getnode(mylist,3);
//cout<<tmp->data<<endl;
//printlist(mylist);
//insertlist(mylist,'a',2);
//printlist(mylist);
deletelistnode(mylist,);
printlist(mylist);
return ;
}

数据结构自己实现——Linklist的更多相关文章

  1. 【数据结构】算法 LinkList (Remove Nth Node From End of List)

    删除链表中倒数第n个节点 时间复杂度要控制在O(n)Solution:设置2个指针,一个用于确定删除节点的位置,一个用于计算倒数间距n.移动时保持2个指针同时移动. public ListNode r ...

  2. 【数据结构】算法 LinkList (Insertion Sort List 链表插入排序)

    将一个单链表进行处理后,所得结果为一有序链表 Solution: 将原始链表逐个查询,插入新链表,在插入的同时对链表进行排序.时间复杂度O(n*n) public ListNode insertion ...

  3. 【数据结构】算法 LinkList (Add Two Numbers)

    两个用链表代表的整数,其中每个节点包含一个数字.数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头.写出一个函数将两个整数相加,用链表形式返回和. Solution:建立一个新链表C,然 ...

  4. 【数据结构】算法 LinkList (Merge Two Sorted Lists)

    合并2个有序链表 list A, list B, Solution: 对A,B 表按序读取数据,比较大小后插入新链表C. 由于两个输入链表的长度可能不同,所以最终会有一个链表先完成插入所有元素,则直接 ...

  5. 【数据结构】算法 LinkList (Reverse LinkedList) Java

    反转链表,该链表为单链表. head 节点指向的是头节点. 最简单的方法,就是建一个新链表,将原来链表的节点一个个找到,并且使用头插法插入新链表.时间复杂度也就是O(n),空间复杂度就需要定义2个节点 ...

  6. Java中常见数据结构Map之LinkedHashMap

    前面已经说完了HashMap, 接着来说下LinkedHashMap. 看到Linked就知道它是有序的Map,即插入顺序和取出顺序是一致的, 究竟是怎样做到的呢? 下面就一窥源码吧. 1, Link ...

  7. Java集合之LinkedHashMap

    一.初识LinkedHashMap 上篇文章讲了HashMap.HashMap是一种非常常见.非常有用的集合,但在多线程情况下使用不当会有线程安全问题. 大多数情况下,只要不涉及线程安全问题,Map基 ...

  8. 图解集合6:LinkedHashMap

    初识LinkedHashMap 上两篇文章讲了HashMap和HashMap在多线程下引发的问题,说明了,HashMap是一种非常常见.非常有用的集合,并且在多线程情况下使用不当会有线程安全问题. 大 ...

  9. 集合之LinkedHashMap(含JDK1.8源码分析)

    一.前言 大多数的情况下,只要不涉及线程安全问题,map都可以使用hashMap,不过hashMap有一个问题,hashMap的迭代顺序不是hashMap的存储顺序,即hashMap中的元素是无序的. ...

随机推荐

  1. day3- python 注册

    # .先把文件内容的账号密码放到list/字典 f = open('users') result = f.read() f.close() user_list = result.split() # u ...

  2. 【mysql】【转发】[Err]1267 - Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,I

    [Err]1267 - Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for o ...

  3. Linux中让alias设置永久生效的方法详解

    Linux中让alias设置永久生效的方法详解 一.问题描述 1.有很多时候我们想要将很多操作作为一个步骤,那么在不作为系统的服务的情况下,别名是我们最好的选择,但是发现别名只能在一次会话中生效,重启 ...

  4. Beyond Compare 4 30天试用期后,破解方法

    Beyond Compare 4 30天试用期后,破解方法. 方法一:在安装目录下找到文件BCUnrar.dll,比如:D:\software\Beyond Compare 4,重命名该文件即可. 重 ...

  5. zoj 4056

    At 0 second, the LED light is initially off. After BaoBao presses the button 2 times, the LED light ...

  6. CDH4 journalnode方式手工安装手册之二

    一.                                Hadoop配置修改 修改core-site.xml文件 <configuration> <property> ...

  7. UVa 1366 DP Martian Mining

    网上的题解几乎都是一样的: d(i, j, 0)表示前i行前j列,第(i, j)个格子向左运输能得到的最大值. d(i, j, 1)是第(i, j)个格子向上运输能得到的最大值. 但是有一个很关键的问 ...

  8. JAVA-基础(五) 更多工具集

    1.StringTokenizer(字符串标记) StringTokenizer实现枚举(Enumeration)接口.因此,给定一个输 入字符串,可以使用StringTokenizer对包含于其中的 ...

  9. luogu3370 【模板】字符串哈希

    #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> ...

  10. Pycharm脚本通用部分设置

    Python脚本经常要设置同样的注释内容,Pycharm里面提供的模板可以很好的实现这个需求. 查找: File->settings->Editor->File and Code T ...